TripleO network_data.yaml contents not enforced
I'm attempting to deploy an overcloud using tripleo, during the deployment my ExternalNetCidr, ExternalAllocationPools, and ExternalInterfaceDefaultRoute are defined in network-environment.yaml and network_data.yaml. The values found in network-environment.yaml are the defaults like 10.0.0.0/24, the values found in network_data.yaml are from my environment. When I tried to only use the values found in network_data.yaml
the deployment failed with the externalnet attempting to ping 10.0.0.1
on vlan 7.
Here is a snippet of my network_data.yaml
- name: External
vip: true
name_lower: external
vlan: 7
ip_subnet: '10.37.7.0/24'
allocation_pools: [{'start': '10.37.7.4', 'end': '10.37.7.250'}]
gateway_ip: '10.37.7.1'
ipv6_subnet: '2001:db8:fd00:1000::/64'
ipv6_allocation_pools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}]
gateway_ipv6: '2001:db8:fd00:1000::1'
And here is what my deploy command looks like:
openstack overcloud deploy --templates \
-r /home/stack/templates/roles_data.yaml \
-e /home/stack/templates/overcloud_images.yaml \
-e /home/stack/templates/node-info.yaml \
-e /home/stack/templates-rendered/environments/ceph-ansible/ceph-ansible.yaml \
-e /home/stack/templates/ceph-config.yaml \
-n /home/stack/templates/network_data.yaml \
-e /home/stack/templates-rendered/environments/network-isolation.yaml \
-e /home/stack/templates-rendered/environments/network-environment.yaml \
-e /home/stack/templates-rendered/environments/net-bond-with-vlans.yaml \
-e /home/stack/templates/custom-network-configuration.yaml \
--ntp-server foo.com
/home/stack/templates-rendered
is where I stuck the rendered templates from the following command:
./tools/process-templates.py -o ~/templates-rendered
network-environment.yaml
was modified with the following values when deployments failed otherwise:
parameter_defaults:
<snip>
ExternalNetCidr: '10.37.7.0/24'
ExternalAllocationPools: [{'start': '10.37.7.4', 'end': '10.37.7.250'}]
ExternalInterfaceDefaultRoute: '10.37.7.1'
<snip>
One curious thing I noticed is that my custom-network-configuration.yaml
(shown below) defines the VLANs for all networks, and those vars were used (it seems in my case network_data.yaml
is entirely ignored). But when I tried to also define CIDRs and Allocation pools it failed with the deployment reporting "these were defined but not used"
resource_registry:
OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/bond-with-vlans/compute.yaml
OS::TripleO::ControllerNoCeph::Net::SoftwareConfig: /home/stack/templates/bond-with-vlans/controller.yaml
OS::TripleO::CephAll::Net::SoftwareConfig: /home/stack/templates/bond-with-vlans/ceph-storage.yaml
parameter_defaults:
# Gateway router for the provisioning network (or Undercloud IP)
ControlPlaneDefaultRoute: 192.168.24.1
# The IP address of the EC2 metadata server. Generally the IP of the Undercloud
EC2MetadataIp: 192.168.24.1
# Define the DNS servers (maximum 2) for the overcloud nodes
DnsServers: ['10.2.0.40', '10.2.0.41']
NeutronExternalNetworkBridge: "''"
BondInterfaceOvsOptions: "mode=802.3ad lacp=active"
# setting this here because its required even though it's set in the network_data.yaml
StorageNetworkVlanID: 4
StorageMgmtNetworkVlanID: 3
InternalApiNetworkVlanID: 2
TenantNetworkVlanID: 5
ExternalNetworkVlanID: 7
ManagementNetworkVlanID: 1