Uploaded image for project: 'OpenShift Pipelines'
  1. OpenShift Pipelines
  2. SRVKP-6459

Pipelines Leases watcher and rebalancer

XMLWordPrintable

    • 13
    • False
    • None
    • False

      Story (Required)

      As Pipelines admin I want the load to be balanced between Pipelines controllers when configuring multiple replicas and optimizing the pipeline for performance.

      Background (Required)

      In Konflux, configured with two Pipelines controller replicas, when one replica is restarted, all leases are acquired by the active replica. Once the second replica comes back online, it does not acquire any lease and does not share the load.

      Out of scope

      <Defines what is not included in this story>

      Approach (Required)

      • Add a new "pipelines leases" controller to the Pipelines operator.
      • The leases controller will watch the leases for the Pipelines controllers.
      • Check the distribution of leases across replicas
      • The number of leases should match the number of buckets defined in the configuration.
      • These leases should be equally distributed across all replicas.
      • If the leases are not evenly distributed, the controller should rebalance the leases by deleting the lease from one controller, allowing it to be reacquired by another replica
      • if n be the total number of buckets, which is also the total number of leases.
      •  m be the number of replicas (Pipelines controller instances).
      • Each replica should hold approximately n/m leases to balance the load evenly across replicas

      Dependencies

      <Describes what this story depends on. Dependent Stories and EPICs should be linked to the story.>

      Acceptance Criteria (Mandatory)

      <Describe edge cases to consider when implementing the story and defining tests>

      <Provides a required and minimum list of acceptance tests for this story. More is expected as the engineer implements this story>

      INVEST Checklist

      Dependencies identified

      Blockers noted and expected delivery timelines set

      Design is implementable

      Acceptance criteria agreed upon

      Story estimated

      Legend

      Unknown

      Verified

      Unsatisfied

      Done Checklist

      • Code is completed, reviewed, documented and checked in
      • Unit and integration test automation have been delivered and running cleanly in continuous integration/staging/canary environment
      • Continuous Delivery pipeline(s) is able to proceed with new code included
      • Customer facing documentation, API docs etc. are produced/updated, reviewed and published
      • Acceptance criteria are met

            jkhelil abdeljawed khelil
            jkhelil abdeljawed khelil
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: