undercloud-bm.yaml
undercloud-vm.yaml
undercloud-vm-ironic.yaml
+undercloud-vm-ironic-vlan.yaml
*.py[cod]
overcloud-with-block-storage-nfs.yaml \
undercloud-vm.yaml \
undercloud-bm.yaml \
- undercloud-vm-ironic.yaml
+ undercloud-vm-ironic.yaml \
+ undercloud-vm-ironic-vlan.yaml
# Files included in overcloud-source.yaml via FileInclude
overcloud_source_deps = nova-compute-instance.yaml
$(VALIDATE):
heat template-validate -f $(subst validate-,,$@)
+# set CONTROLEXTRA to overcloud-vlan-port.yaml to activate the VLAN
+# auto-assignment from Neutron.
overcloud.yaml: overcloud-source.yaml block-storage.yaml swift-deploy.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml nova-compute-config.yaml $(overcloud_source_deps)
- python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml ${CONTROLEXTRA} > $@.tmp
mv $@.tmp $@
overcloud-with-block-storage-nfs.yaml: overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml $(overcloud_source_deps)
python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
mv $@.tmp $@
+undercloud-vm-ironic-vlan.yaml: undercloud-source.yaml undercloud-vm-ironic-config.yaml undercloud-vm-ironic-deploy.yaml undercloud-vlan-port.yaml
+ python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
+ mv $@.tmp $@
+
check: test
test:
default: ''
description: A custom IP address to put onto the NeutronPublicInterface.
type: string
+ NeutronPublicInterfaceTag:
+ default: ''
+ description: |
+ VLAN tag for creating a public VLAN. The tag will be used to
+ create an access port on the exterior bridge for each control plane node,
+ and that port will be given the IP address returned by neutron from the
+ public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
+ overcloud.yaml to include the deployment of VLAN ports to the control
+ plane.
+ type: string
NeutronPublicInterfaceRawDevice:
default: ''
description: If set, the public interface is a vlan with this device as the raw device.
get_param: NeutronPublicInterfaceRawDevice
public_interface_route:
get_param: NeutronPublicInterfaceDefaultRoute
+ public_interface_tag:
+ get_param: NeutronPublicInterfaceTag
physical_bridge: br-ex
tenant_network_type: gre
ovs_db:
--- /dev/null
+outputs:
+ controller0PublicIP:
+ description: Address for registering endpoints in the cloud.
+ value: {get_attr: [controller0VLANPort, fixed_ips, 0, ip_address]}
+resources:
+ # Override the main template which can also supply a static route.
+ controller0_99_VLANPort:
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: ControllerVLANPortConfig}
+ server: {get_resource: controller0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ vlan_port:
+ list_join:
+ - '/'
+ - - {get_attr: [controller0_VLANPort, fixed_ips, 0, ip_address]}
+ # This should also be pulled out of the subnet. May need a
+ # neutron fix too - XXX make into a parameter and feed it
+ # in via _overcloud.sh for now.
+ - '24'
+ # Tell the instance to apply the default route.
+ # Reinstate when https://bugs.launchpad.net/heat/+bug/1336656 is
+ # sorted
+ # public_interface_route:
+ # get_attr: [controller0_VLANPort, fixed_ips, 0, subnet, gateway_ip]
+ ControllerVLANPortConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ config:
+ neutron:
+ ovs:
+ public_interface_tag_ip: {get_input: vlan_port}
+ controller0_VLANPort:
+ type: OS::Neutron::Port
+ properties:
+ name: controller0_vlan
+ network: public
type: string
NeutronPublicInterfaceIP:
default: ''
- description: A custom IP address to put onto the NeutronPublicInterface.
+ description: |
+ A custom IP address to put onto the NeutronPublicInterface bridge.
+ See also NeutronPublicInterfaceTagIP for adding a VLAN tagging IP.
+ NeutronPublicInterfaceIP is deprecated in the context of deploying
+ underclouds - its only needed for the seed bootstrap process.
+ type: string
+ NeutronPublicInterfaceTag:
+ default: ''
+ description: |
+ VLAN tag for creating a public VLAN. The tag will be used to
+ create an access port on the exterior bridge, and that port will be
+ given the IP address returned by neutron from the public network.
type: string
NeutronPublicInterfaceRawDevice:
default: ''
get_param: NeutronPublicInterfaceRawDevice
public_interface_route:
get_param: NeutronPublicInterfaceDefaultRoute
+ public_interface_tag:
+ get_param: NeutronPublicInterfaceTag
physical_bridge: br-ctlplane
physical_network: ctlplane
network_vlan_ranges: ctlplane
--- /dev/null
+outputs:
+ PublicIP:
+ description: Address for registering endpoints in the cloud.
+ value: {get_attr: [undercloud_VLANPort, fixed_ips, 0, ip_address]}
+resources:
+ # Override the main template which can also supply a static route.
+ undercloud_99VLANPort:
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: undercloudVLANPortConfig}
+ server: {get_resource: undercloud}
+ signal_transport: NO_SIGNAL
+ undercloudVLANPortConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ config:
+ neutron:
+ ovs:
+ public_interface_tag_ip:
+ Fn::Join:
+ - '/'
+ - - {get_attr: [undercloud_VLANPort, fixed_ips, 0, ip_address]}
+ - '24'
+ # This should also be pulled out of the subnet. May need a
+ # neutron fix too - XXX make into a parameter and feed it
+ # in via _undercloud.sh for now.
+ # Tell the instance to apply the default route.
+ # Reinstate when https://bugs.launchpad.net/heat/+bug/1336656 is
+ # sorted
+ # public_interface_route:
+ # get_attr: [undercloud_VLANPort, fixed_ips, 0, subnet, gateway_ip]
+ undercloud_VLANPort:
+ type: OS::Neutron::Port
+ properties:
+ name: undercloud_vlan
+ network: public