Description of problem: Custom roles bridge_name input is not passed down into custom roles' nic-configs. Version-Release number of selected component (if applicable): OSP 10 How reproducible: Steps to Reproduce: 1.Configure custom role for additional compute node type with network isolation. cp compute.yaml to customcompute.yaml and deploy. Actual results: /etc/os-net-config/config.json (...) {"use_dhcp": false, "type": "ovs_bridge", "name": None, (...) Expected results: /etc/os-net-config/config.json {"use_dhcp": false, "type": "ovs_bridge", "name": "br-ex", Additional info: workaround: (...) - type: ovs_bridge # note that input bridge_name will not work here, configure a static bridge name #name: {get_input: bridge_name} name: br-ex (...) Unless I misunderstand the templates, this is completely missing for all roles but computes, and for controllers it's hardcoded to br-ex? ~~~ [stack@undercloud-1 templates]$ grep bridge_name /usr/share/openstack-tripleo-heat-templates/* -R | grep -v net-config | grep -v 'network/config' /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml: bridge_name: {get_param: NeutronPhysicalBridge} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml: bridge_name: br-ex ~~~ In any way, this is not working for custom roles. ~~~ [stack@undercloud-1 templates]$ grep NetworkDeployment: /usr/share/openstack-tripleo-heat-templates/* -R -C10 /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- TenantIp: {get_attr: [TenantPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- TenantIpUri: {get_attr: [TenantPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- ManagementIp: {get_attr: [ManagementPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml: NetworkDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- type: OS::TripleO::SoftwareDeployment /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- name: NetworkDeployment /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- config: {get_resource: NetworkConfig} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- server: {get_resource: BlockStorage} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- actions: {get_param: NetworkDeploymentActions} /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- BlockStorageDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- type: OS::Heat::StructuredDeployment /usr/share/openstack-tripleo-heat-templates/puppet/blockstorage-role.yaml- depends_on: NetworkDeployment -- /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- TenantIp: {get_attr: [TenantPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- TenantIpUri: {get_attr: [TenantPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- ManagementIp: {get_attr: [ManagementPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml: NetworkDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- type: OS::TripleO::SoftwareDeployment /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- name: NetworkDeployment /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- config: {get_resource: NetworkConfig} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- server: {get_resource: CephStorage} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- actions: {get_param: NetworkDeploymentActions} /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- CephStorageDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- type: OS::Heat::StructuredDeployment /usr/share/openstack-tripleo-heat-templates/puppet/cephstorage-role.yaml- depends_on: NetworkDeployment -- /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- type: OS::TripleO::Compute::Net::SoftwareConfig /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml: NetworkDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- type: OS::TripleO::SoftwareDeployment /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- name: NetworkDeployment /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- config: {get_resource: NetworkConfig} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- server: {get_resource: NovaCompute} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- actions: {get_param: NetworkDeploymentActions} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- input_values: /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- bridge_name: {get_param: NeutronPhysicalBridge} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- interface_name: {get_param: NeutronPublicInterface} /usr/share/openstack-tripleo-heat-templates/puppet/compute-role.yaml- -- /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- type: OS::TripleO::Controller::Net::SoftwareConfig /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml: NetworkDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- type: OS::TripleO::SoftwareDeployment /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- name: NetworkDeployment /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- config: {get_resource: NetworkConfig} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- server: {get_resource: Controller} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- actions: {get_param: NetworkDeploymentActions} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- input_values: /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- bridge_name: br-ex /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- interface_name: {get_param: NeutronPublicInterface} /usr/share/openstack-tripleo-heat-templates/puppet/controller-role.yaml- -- /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- TenantIp: {get_attr: [TenantPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- TenantIpUri: {get_attr: [TenantPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- ManagementIp: {get_attr: [ManagementPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml: NetworkDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- type: OS::TripleO::SoftwareDeployment /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- name: NetworkDeployment /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- config: {get_resource: NetworkConfig} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- server: {get_resource: SwiftStorage} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- actions: {get_param: NetworkDeploymentActions} /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- SwiftStorageHieraConfig: /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- type: OS::Heat::StructuredConfig /usr/share/openstack-tripleo-heat-templates/puppet/objectstorage-role.yaml- properties: -- /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- TenantIp: {get_attr: [TenantPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- TenantIpUri: {get_attr: [TenantPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- ManagementIp: {get_attr: [ManagementPort, ip_address]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml: NetworkDeployment: /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- type: OS::TripleO::SoftwareDeployment /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- properties: /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- name: NetworkDeployment /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- config: {get_resource: NetworkConfig} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- server: {get_resource: {{role}}} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- actions: {get_param: NetworkDeploymentActions} /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- {{role}}Deployment: /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- type: OS::Heat::StructuredDeployment /usr/share/openstack-tripleo-heat-templates/puppet/role.role.j2.yaml- depends_on: NetworkDeployment ~~~
*** This bug has been marked as a duplicate of bug 1405929 ***