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

machineConfigPool show UPDATED to false and UPDATING to true when a node is in SchedulingDisabled state

    XMLWordPrintable

Details

    • Moderate
    • False
    • Hide

      None

      Show
      None

    Description

      Description of problem:

      The machineConfigPool shows as Updating==true and Updated==false when a node of the same mcp in in SchedulingDisabled state, even if the node match the desiredMac

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

      $ oc version
      Client Version: 4.10.36
      Server Version: 4.10.38
      Kubernetes Version: v1.23.12+6b34f32

      How reproducible:

      100%

      Steps to Reproduce:

      // checking the desired machineConfig fr the worker pool
      $ oc get mcp worker -o json | jq .spec.configuration.name "rendered-worker-03e011808b16f8274e7605c85537569c" 
      
      // checkinh the currentConfig and desiredConfig machineConfig for each workers node
      $ oc get node -l node-role.kubernetes.io/worker= -o custom-columns=NAME:metadata.name,STATE:metadata.annotations.machineconfiguration\\.openshift\\.io/state,DESIRED:metadata.annotations.machineconfiguration\\.openshift\\.io/desiredConfig,CURRENT:metadata.annotations.machineconfiguration\\.openshift\\.io/currentConfig NAME                                            STATE   DESIRED                                            CURRENT ip-10-0-159-119.eu-central-1.compute.internal   Done    rendered-worker-03e011808b16f8274e7605c85537569c   rendered-worker-03e011808b16f8274e7605c85537569c ip-10-0-163-125.eu-central-1.compute.internal   Done    rendered-worker-03e011808b16f8274e7605c85537569c   rendered-worker-03e011808b16f8274e7605c85537569c ip-10-0-215-129.eu-central-1.compute.internal   Done    rendered-worker-03e011808b16f8274e7605c85537569c   rendered-worker-03e011808b16f8274e7605c85537569c 
      
      // cordoning a worker node
      $ oc adm cordon ip-10-0-163-125.eu-central-1.compute.internal
      
      $ oc get node -l node-role.kubernetes.io/worker=             
      NAME                                            STATUS                     ROLES    AGE    VERSION
      ip-10-0-159-119.eu-central-1.compute.internal   Ready,SchedulingDisabled   worker   2d1h   v1.23.12+6b34f32
      ip-10-0-163-125.eu-central-1.compute.internal   Ready                      worker   2d1h   v1.23.12+6b34f32
      ip-10-0-215-129.eu-central-1.compute.internal   Ready                      worker   2d1h   v1.23.12+6b34f32
      
      
      

      Actual results:

      $ oc get mcp
      NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
      master   rendered-master-31865b18ce07a3655fdaf530b28a86d7   True      False      False      3              3                   3                     0                      2d1h
      worker   rendered-worker-03e011808b16f8274e7605c85537569c   False     True       False      3              2                   3                     0                      2d1h

      Expected results:

      $ oc get mcp
      NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
      master   rendered-master-31865b18ce07a3655fdaf530b28a86d7   True      False      False      3              3                   3                     0                      2d1h
      worker   rendered-worker-03e011808b16f8274e7605c85537569c   True      False      False      3              3                   3                     0                      2d1h

      Additional info:

      As reported in the machineconfigpools CRD the "Updated" field should be true "When all the machines in the pool are updated to the correct machine config" but is not. The same for the "Updating" field.

      $ oc get crd machineconfigpools.machineconfiguration.openshift.io -o json | jq '.spec.versions[0].additionalPrinterColumns[] | select((.name=="Updated") or .name=="Updating")'
      {
        "name": "Updated",
        "type": "string",
        "description": "When all the machines in the pool are updated to the correct machine config.",
        "jsonPath": ".status.conditions[?(@.type==\"Updated\")].status"
      }
      {
        "name": "Updating",
        "type": "string",
        "description": "When at least one of machine is not either not updated or is in the process of updating to the desired machine config.",
        "jsonPath": ".status.conditions[?(@.type==\"Updating\")].status"
      }

      Attachments

        Activity

          People

            team-mco Team MCO
            rhn-support-gmeghnag Gabriel Meghnagi
            Rio Liu Rio Liu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: