2985cd9a3a
Wire in os-net-config via a normal script heat deployment, which has the following advantages: 1. Improved error path, currently o-a-c deployments don't report any errors, thus hang and eventually the deployment times out 2. It's far more hackable from a deployer perspective, e.g it's much easier to change the os-net-config options or include a mapping file 3. Reduces our dependencies on o-a-c (it's only os-net-config and hiera which requires it), although the script does currently still use oac to get the metadata IP. 4. May enable passing os-net-config yaml via a json parameter in future, reducing the need for resource_registry mappings (although we'll have to support that for backwards compatibility) The script used is based directly on 20-os-net-config (from t-i-e at cf94c5e, we can probably improve this now that we have an error path, but for this initial commit it's a straight copy other than the changes to replace o-a-c for rendering the json config file. Co-Authored-By: Steven Hardy <shardy@redhat.com> Change-Id: I0ed08332cfc49a579de2e83960f0d8047690b97a
88 lines
2.8 KiB
YAML
88 lines
2.8 KiB
YAML
heat_template_version: '2016-10-14'
|
|
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
|
|
ControlPlaneDefaultRoute: # Override this via parameter_defaults
|
|
description: The default route of the control plane network.
|
|
type: string
|
|
DnsServers: # Override this via parameter_defaults
|
|
default: []
|
|
description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
|
|
type: comma_delimited_list
|
|
EC2MetadataIp: # Override this via parameter_defaults
|
|
description: The IP address of the EC2 metadata server.
|
|
type: string
|
|
resources:
|
|
OsNetConfigImpl:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config:
|
|
str_replace:
|
|
template:
|
|
get_file: network/scripts/run-os-net-config.sh
|
|
params:
|
|
$network_config:
|
|
network_config:
|
|
- type: ovs_bridge
|
|
name: bridge_name
|
|
use_dhcp: true
|
|
members:
|
|
- type: interface
|
|
name: interface_name
|
|
# force the MAC address of the bridge to this interface
|
|
primary: true
|
|
- type: interface
|
|
name: br-ex:0
|
|
addresses:
|
|
- ip_netmask:
|
|
list_join:
|
|
- /
|
|
- - get_param: ControlPlaneIp
|
|
- get_param: ControlPlaneSubnetCidr
|
|
routes:
|
|
- ip_netmask: 169.254.169.254/32
|
|
next_hop:
|
|
get_param: EC2MetadataIp
|
|
- default: true
|
|
next_hop:
|
|
get_param: ControlPlaneDefaultRoute
|
|
outputs:
|
|
OS::stack_id:
|
|
description: The OsNetConfigImpl resource.
|
|
value:
|
|
get_resource: OsNetConfigImpl
|
|
|