Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-13237

BZ#2275083 designate deployment fails when using linux bond for the public interface for designate

XMLWordPrintable

    • 3
    • False
    • Hide

      None

      Show
      None
    • False
    • No Docs Impact
    • tripleo-ansible-3.3.1-17.1.20240920151434.8debef3.el9ost
    • None
    • Hide
      .Deployment failures in environments with RHOSP DNS service (designate) on hosts with VLANs on bonds

      In early tests, when deploying the RHOSP DNS service (designate) on hosts with VLANs on bonds, the RHOSP deployment failed at the point of adding the IP address for the BIND instances to the VLAN interface.

      A fix was shipped with RHOSP 17.1.4 to prevent that failure, but additional testing and verification of the fix is still in progress.
      Show
      .Deployment failures in environments with RHOSP DNS service (designate) on hosts with VLANs on bonds In early tests, when deploying the RHOSP DNS service (designate) on hosts with VLANs on bonds, the RHOSP deployment failed at the point of adding the IP address for the BIND instances to the VLAN interface. A fix was shipped with RHOSP 17.1.4 to prevent that failure, but additional testing and verification of the fix is still in progress.
    • 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:

              rhn-engineering-beagles Brent Eagles
              jira-bugzilla-migration RH Bugzilla Integration
              Arkady Shtempler Arkady Shtempler
              rhos-dfg-networking-squad-vans
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: