Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-14121

Agent based IPV6 only install fails when the RendezvousIP is not canonical

    XMLWordPrintable

Details

    • Low
    • Sprint 236, Sprint 238
    • 2
    • No
    • False
    • Hide

      None

      Show
      None
    • Hide
      Previously, an Agent-based installation would fail if a non-canonical IPv6 address was used for the `RendezvousIP` in the `agent-config.yaml` file. Non-canonical IPv6 addresses, for example, contain leading zeros such as `2001:0db8:0000:0000:0000:0000:0000:0000`. With this update, these valid addresses can now be used for the `RendezvousIP`. (link:https://issues.redhat.com/browse/OCPBUGS-14121[*OCPBUGS-14121*])
      Show
      Previously, an Agent-based installation would fail if a non-canonical IPv6 address was used for the `RendezvousIP` in the `agent-config.yaml` file. Non-canonical IPv6 addresses, for example, contain leading zeros such as `2001:0db8:0000:0000:0000:0000:0000:0000`. With this update, these valid addresses can now be used for the `RendezvousIP`. (link: https://issues.redhat.com/browse/OCPBUGS-14121 [* OCPBUGS-14121 *])
    • Bug Fix
    • Done

    Description

      Description of problem:

      When doing an IPV6 only agent based installer on bare metal this fails if the RendezvousIP value is not canonical. 

      Version-Release number of selected component (if applicable):

      OCP 4.12

      How reproducible:

      Every time.

      Steps to Reproduce:

      1. Configure the agent through agen-config.yaml for an IPV6 only install.
      2. Set to something that is correct, but not canonical: 
         for example: rendezvousIP: 2a00:8a00:4000:020c:0000:0000:0018:143c 
      3. Generate discovery iso and boot nodes. 

      Actual results:

      Installation fails because the set-node-zero.sh script fails to discover that it is running on node zero.

      Expected results:

      Installation completes. 

      Additional info:

      The code that detects wether a host is node-zero uses this:
      
      is_rendezvous_host=$(ip -j address | jq "[.[].addr_info] | flatten | map(.local==\"$NODE_ZERO_IP\") | any")
      
      This fails in unexpected ways with IPV6 that are not canonical, as the output of ip address is always canonical, but in this case the value for $NODE_ZERO_IP wasn't. 
      We did test this on the node itself: 
      
      [root@slabnode2290 bin]# ip -j address | jq '[.[].addr_info] | flatten | map(.local=="2a00:8a00:4000:020c:0000:0000:0018:143c") | any' 
      false
      
      [root@slabnode2290 bin]# ip -j address | jq '[.[].addr_info] | flatten | map(.local=="2a00:8a00:4000:20c::18:143c") | any'
      true
      
      A solution may be to use a tool like ipcalc, once available, to do this test and make it less strict. In the mean time a note in the docs would be a good idea.

       

      Attachments

        Issue Links

          Activity

            People

              bfournie@redhat.com Robert Fournier
              kvanbesi@redhat.com Krist van Besien
              Biagio Manzari Biagio Manzari
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: