Uploaded image for project: 'OpenShift Cloud'
  1. OpenShift Cloud
  2. OCPCLOUD-1502

Implement update logic for RollingUpdate CPMS strategy

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Done
    • Icon: Major Major
    • None
    • None
    • CLOUD Sprint 221, CLOUD Sprint 222, CLOUD Sprint 223

      Background

      We expect the MachineProvider to provide information detailing which Machines need updating, this logic then needs to be acted upon for the RollingUpdate strategy as described in the enhancement and comments in the code.

      // reconcileMachineRollingUpdate implements the rolling update strategy for the ControlPlaneMachineSet. It uses the
      // indexed machine information to determine when a new Machine is required to be created. When a new Machine is required,
      // it uses the machine provider to create the new Machine.
      //
      // For rolling updates, a new Machine is required when a machine index has a Machine, which needs an update, but does
      // not yet have replacement created. It must also observe the surge semantics of a rolling update, so, if an existing
      // index is already going through the process of a rolling update, it should not start the update of any other index.
      // At present, the surge is limited to a single Machine instance.
      //
      // Once a replacement Machine is ready, the strategy should also delete the old Machine to allow it to be removed from
      // the cluster.
      //
      // In certain scenarios, there may be indexes with missing Machines. In these circumstances, the update should attempt
      // to create a new Machine to fulfil the requirement of that index. 

      The code should be implemented here and should satisfy the tests being added in  this PR  for the RollingUpdate strategy

      Steps

      • Review the tests cases and function description to understand what the expected behaviour is
      • Implement the behaviour of the function based on prescribed behaviour in the tests
      • Ensure linting passes (make lint) and think about the code layout, it is clean?
      • Consider any additional tests that may need to be added

      Stakeholders

      • Cluster Infra (Joel)

      Definition of Done

      • Rolling Update tests are passing based on the existing unit tests
      • Docs
      • N/A
      • Testing
      • Existing unit tests and any additional testing that you can think of has been added
      •  

            ddonati@redhat.com Damiano Donati
            joelspeed Joel Speed
            Huali Liu Huali Liu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: