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

Setting the advertiseAddress in the microshift config.yaml file leads to CrashLoopBackOff for the ovnkube-master pod

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done-Errata
    • Icon: Normal Normal
    • 4.15, 4.16
    • 4.14
    • MicroShift
    • None
    • Low
    • No
    • 1
    • uShift Sprint 246, uShift Sprint 247, uShift Sprint 248
    • 3
    • False
    • Hide

      None

      Show
      None
    • N/A
    • Release Note Not Required

      Description of problem:

      I tried to deploy Microshift and had an issue while setting up the config.yaml file. Specifically, I explicitly set the advertiseAddress to the default one, but didn't set the IP in the host interface, leading to a failure in one of the ovnkube-master's pod containers.In my case, I misread the documentation (the user is responsible for setting the IP in the host interface if the advertiseAddress is set). Deleting that key resolved the problem.However, since we [document the default address](https://access.redhat.com/documentation/en-us/red_hat_build_of_microshift/4.14/html/configuring/microshift-using-config-tools#microshift-config-yaml_microshift-configuring) in the config.yaml and having it set by the user prevents ovnkube from configuring the IP, could a validation beforehand better inform the users of the error and avoid them digging in the ovnkube logs?

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

      4.14

      How reproducible:

      Always

      Steps to Reproduce:

      1. Configure the host for microshift without setting an IP address for the br-ex interface
      2. Set an IP address in the advertiseAddress key explicitly (even the expected default one)
      3. systemctl start microshift.service
      

      Actual results:

      The ovnkube-master container in the ovnkube-master pod crashes

      Expected results:

      The failure is expected as we document that in the case an IP is set explicitly, microshift (1) does not compute it, (2) does not set the IP address in any interface.
      
      However, we also document the key in the example config.yaml file with the default value it will take (the first address of the subnet next to the services one). A user might set the same default address explicitly and expect it to work. The burden of deeping dive into the ovnkube logs could be uncomfortable. Rather, we could prevent the deploy from starting at all and fail at an early stage printing the error in the microshift.service's journal by:
      1. Looking if the advertiseAddress is set
      2. If set, verify that any interface has that address set
      3. If no interface has that address set, print a clearer error like "You set an advertiseAddress in the config.yaml file but it is not set in any interfaces" and fail.

      Additional info:

       

            pacevedo@redhat.com Pablo Acevedo Montserrat
            rhn-support-adistefa Alessandro Di Stefano
            Douglas Hensel Douglas Hensel
            Shauna Diaz Shauna Diaz
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: