diff --git a/ci/common/net-config-multinode-os-net-config.yaml b/ci/common/net-config-multinode-os-net-config.yaml deleted file mode 100644 index bec8428ca5..0000000000 --- a/ci/common/net-config-multinode-os-net-config.yaml +++ /dev/null @@ -1,271 +0,0 @@ -heat_template_version: rocky - -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 - ControlPlaneSubnetCidr: - default: '' - description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) - type: string - ControlPlaneDefaultRoute: - default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) - type: string - ControlPlaneStaticRoutes: - default: [] - description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - ControlPlaneMtu: - default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the network. - (The parameter is automatically resolved from the ctlplane network's mtu attribute.) - type: number - ExternalIpSubnet: - default: '' - description: IP address/subnet on the external network - type: string - ExternalInterfaceRoutes: - default: [] - description: > - Routes for the external network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - ExternalMtu: - default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - External network. - type: number - ExternalInterfaceDefaultRoute: - default: '' - description: default route for the external network - type: string - InternalApiIpSubnet: - default: '' - description: IP address/subnet on the internal_api network - type: string - InternalApiInterfaceRoutes: - default: [] - description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - InternalApiMtu: - default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. - type: number - StorageIpSubnet: - default: '' - description: IP address/subnet on the storage network - type: string - StorageInterfaceRoutes: - default: [] - description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - StorageMtu: - default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. - type: number - StorageMgmtIpSubnet: - default: '' - description: IP address/subnet on the storage_mgmt network - type: string - StorageMgmtInterfaceRoutes: - default: [] - description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - StorageMgmtMtu: - default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. - type: number - StorageNFSIpSubnet: - default: '' - description: IP address/subnet on the storage_nfs network - type: string - StorageNFSRoutes: - default: [] - description: > - Routes for the storage_nfs network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - TenantIpSubnet: - default: '' - description: IP address/subnet on the tenant network - type: string - TenantInterfaceRoutes: - default: [] - description: > - Routes for the tenant network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - TenantMtu: - default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Tenant network. - type: number - ManagementIpSubnet: - default: '' - description: IP address/subnet on the management network - type: string - ManagementInterfaceRoutes: - default: [] - description: > - Routes for the management network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - ManagementMtu: - default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Management network. - type: number - OvSBridgeMtu: - default: 1300 - description: The mtu of the OvS bridge - type: number - DnsServers: # Override this via parameter_defaults - default: [] - description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. - type: comma_delimited_list - # NOTE(hjensas): We need these because the default network_data.yaml define - # vlan for all networks. - ExternalNetworkVlanID: - default: 10 - description: Vlan ID for the external network traffic. - type: number - InternalApiNetworkVlanID: - default: 20 - description: Vlan ID for the internal_api network traffic. - type: number - StorageNetworkVlanID: - default: 30 - description: Vlan ID for the storage network traffic. - type: number - StorageMgmtNetworkVlanID: - default: 40 - description: Vlan ID for the storage_mgmt network traffic. - type: number - TenantNetworkVlanID: - default: 50 - description: Vlan ID for the tenant network traffic. - 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. However, if $interface_name is already - # present in `ovs-vsctl show`, assume our br-ex is - # already configured. (Mainly for upgrade job, to avoid - # deleting br-ex during upgrade.) - if ! ovs-vsctl show | grep $interface_name &> /dev/null; then - ovs-vsctl del-br br-ex - fi - } - - - - 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} diff --git a/ci/environments/multinode-containers.yaml b/ci/environments/multinode-containers.yaml index 1730c4af51..944bc2fff7 100644 --- a/ci/environments/multinode-containers.yaml +++ b/ci/environments/multinode-containers.yaml @@ -1,6 +1,6 @@ resource_registry: - OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode-os-net-config.yaml - OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode-os-net-config.yaml + OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode.yaml + OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml # Some infra instances don't pass the ping test but are otherwise working. # Since the OVB jobs also test this functionality we can shut it off here. OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml diff --git a/ci/environments/scenario007-multinode-containers.yaml b/ci/environments/scenario007-multinode-containers.yaml index 35d3379ebb..376d2df006 100644 --- a/ci/environments/scenario007-multinode-containers.yaml +++ b/ci/environments/scenario007-multinode-containers.yaml @@ -1,6 +1,6 @@ resource_registry: - OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode-os-net-config.yaml - OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode-os-net-config.yaml + OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode.yaml + OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml OS::TripleO::Docker::NeutronMl2PluginBase: ../../deployment/neutron/neutron-plugin-ml2.yaml OS::TripleO::Services::NeutronApi: ../../deployment/neutron/neutron-api-container-puppet.yaml OS::TripleO::Services::NeutronCorePlugin: ../../deployment/neutron/neutron-plugin-ml2-container-puppet.yaml diff --git a/network/scripts/run-os-net-config.sh b/network/scripts/run-os-net-config.sh index 334b384ee5..179a6d9955 100755 --- a/network/scripts/run-os-net-config.sh +++ b/network/scripts/run-os-net-config.sh @@ -79,10 +79,6 @@ if [ -n '$network_config' ]; then # Note these variables come from the calling heat SoftwareConfig echo '$network_config' > /etc/os-net-config/config.json - if [ "$(type -t network_config_hook)" = "function" ]; then - network_config_hook - fi - sed -i "s/: \"bridge_name/: \"${bridge_name:-''}/g" /etc/os-net-config/config.json sed -i "s/interface_name/${interface_name:-''}/g" /etc/os-net-config/config.json