-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
3
-
False
-
-
False
-
No Docs Impact
-
tripleo-ansible-3.3.1-17.1.20240920151434.8debef3.el9ost
-
None
-
-
Known Issue
-
Done
-
-
-
Important
Description of problem:
designate deployment fails when using linux bond for the public interface for designate
Version-Release number of selected component (if applicable):
RHOSP 17.1
How reproducible:
Always
Steps to Reproduce:
When a linux bond is used for the public interface for designate, deployment fails with following error message.
~~~
FATAL | Set the unbound additional address required device | controller<number> |
error={"changed": true, "cmd": ["ip", "addr", "add", "<new ip>", "dev", "vlan<number>@bond<number>"] <time details> "stderr": "Cannot find device \"vlan<number>@bond<number>\""
~~~
It seems that /usr/share/ansible/roles/designate_bind_config/tasks/configure_interfaces.yml fails because the tripleo_findif_for_ip returns vlan<number>@bond<number>.
The issue appears to be that ansible is getting the device name from an `ip a` command which shows the interface as "vlan<number>@bond<number>"[1].
Following code is just a possible fix but it worked in consultant environment.
~~~
/usr/share/ansible/plugins/modules/tripleo_findif_for_ip.py
def find_interface(module, ip_address):
rc, out, err = module.run_command(['ip', '-br', 'addr'])
result =
{ 'changed': False, 'interface': '' } for ifline in out.splitlines():
columns = ifline.strip().split()
if len(columns) == 0:
continue
interface_name = columns[0].split('@')[0]
ips = columns[2:]
for addr in ips:
ip = addr.split('/')[0]
if ip == ip_address:
result['interface'] = interface_name
return result
return result
~~~
[1]
$ ip -br addr
interface1 UP
interface2 UP
interface3 UP
interface4 UP
interface5 UP
interface6 UP
ovs-system DOWN
br-ex unknown
bond0 UP <IP address>
bond1 UP <IP address>
bond2 UP <IP address>
vlan<number> (VLAN using OVS)
vlan<number>@bond<number> (VLAN not using OVS)
vlan<number>@bond<number> (VLAN not using OVS)
br-int DOWN
Actual results:
designate deployment fails.
Expected results:
designate deployment should succeed.
Additional info:
- external trackers