tripleo-heat-templates/ci/common/net-config-multinode-os-net-config.yaml
Dan Sneddon e148ac870b Render IP map and host maps according to network_data.yaml
This change renders the network IP maps and hostname maps for
all networks defined in network_data.yaml. This should make it
possible to create custom networks that will be rendered for
all applicable roles.

Note that at this time all networks will be rendered whether
they are enabled or not. All networks will be present in all
roles, but ports will be associated with noop.yaml in roles
that do not use the network. This is in accordance with
previous behavior, although we may wish to change this in
the future to limit the size of the role definitions and
reduce the number of placeholder resources in deployments
with many networks.

Note that this patch is a replacement for original patch
https://review.openstack.org/#/c/486280, which I was having
trouble rebasing to current.

Change-Id: I445b008fc1240af57c2b76a5dbb6c751a05b7a2a
Depends-on: I662e8d0b3737c7807d18c8917bfce1e25baa3d8a
Partially-implements: blueprint composable-networks
2017-08-16 13:30:54 +01:00

115 lines
4.0 KiB
YAML

heat_template_version: pike
description: >
Software Config to drive os-net-config for a simple bridge configured
with a static IP address for the ctlplane network.
parameters:
ControlPlaneIp:
default: ''
description: IP address/subnet on the ctlplane network
type: string
ExternalIpSubnet:
default: ''
description: IP address/subnet on the external network
type: string
InternalApiIpSubnet:
default: ''
description: IP address/subnet on the internal_api network
type: string
StorageIpSubnet:
default: ''
description: IP address/subnet on the storage network
type: string
StorageMgmtIpSubnet:
default: ''
description: IP address/subnet on the storage_mgmt network
type: string
TenantIpSubnet:
default: ''
description: IP address/subnet on the tenant network
type: string
ManagementIpSubnet:
default: ''
description: IP address/subnet on the management network
type: string
ControlPlaneSubnetCidr: # Override this via parameter_defaults
default: '24'
description: The subnet CIDR of the control plane network.
type: string
OvSBridgeMtu:
default: 1300
description: The mtu of the OvS bridge
type: number
resources:
OsNetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
list_join:
- ''
- - |
#!/bin/bash
function network_config_hook {
primary_private_ip=$(cat /etc/nodepool/primary_node_private)
sed -i "s/primary_private_ip/$primary_private_ip/" /etc/os-net-config/config.json
subnode_private_ip=$(cat /etc/nodepool/node_private)
sed -i "s/subnode_private_ip/$subnode_private_ip/" /etc/os-net-config/config.json
# We start with an arbitrarily high vni key so that we don't
# overlap with Neutron created values. These will also match the
# values that we've been using previously from the devstack-gate
# code.
vni=1000002
subnode_index=$(grep -n $(cat /etc/nodepool/node_private) /etc/nodepool/sub_nodes_private | cut -d: -f1)
let vni+=$subnode_index
sed -i "s/vni/$vni/" /etc/os-net-config/config.json
export interface_name="br-ex_$primary_private_ip"
# Until we are fully migrated to os-net-config we need to clean
# up the old bridge first created by devstack-gate
ovs-vsctl del-br br-ex
}
-
str_replace:
template:
get_file: ../../network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
mtu:
get_param: OvSBridgeMtu
use_dhcp: false
addresses:
- ip_netmask:
list_join:
- "/"
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
members:
- type: ovs_tunnel
name: interface_name
tunnel_type: vxlan
ovs_options:
- list_join:
- "="
- - key
- vni
- list_join:
- "="
- - remote_ip
- primary_private_ip
- list_join:
- "="
- - local_ip
- subnode_private_ip
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}