Uploaded image for project: 'OpenShift Monitoring'
  1. OpenShift Monitoring
  2. MON-3169

Extend user customizable TopologySpreadConstraints to all relevant pods

    XMLWordPrintable

Details

    • Topo spread constraints
    • False
    • None
    • False
    • MON-3159Technical Debt
    • Not Selected
    • NEW
    • To Do
    • NEW
    • 100
    • 100% 100%

    Description

      Epic Goal

      • Today users can specify TopologySpreadConstraints for in-cluster Prometheus and alertmanager, and Thanos Ruler pods.
      • We should support setting these constraints on all pods that we deploy

      Why is this important?

      • Users want to constrain pod scheduling based on their infrastructure. Currently users have the option to use
        • Node affinity. However we do not expose that field and we use it for our own purpose.
        • Node taints. Taints and tolerations lack the flexibility to specify a preferred pod locations
        • Node selectors. Node selectors have the same inflexibility as tolerations. If no node can be found, the pod is not scheduled.
      • Exposing TSC for all pods would allow users to control pod scheduling according to their own or preexisting infra structure labels, while at the same time allow the scheduler to deploy pods even if the constraints can not be fulfilled.

      Scenarios

      1. A user wants the Monitoring pods preferably scheduled on nodes labeled Infra, but wants them scheduled anywhere in case no nodes are carry that label or they are discarded during scheduling for other reasons.

      Acceptance Criteria

      • Users can configure TopologySpreadConstraints for all pods that CMO deploys
      • Unit tests are in place to confirm the config is propagated to the pod artifact
      • Documentation is changed to make clear which components can be configured with TopologySpreadConstraints

      Dependencies (internal and external)

      1. ...

      Previous Work (Optional):

      Open questions:

      Done Checklist

      • CI - CI is running, tests are automated and merged.
      • Release Enablement <link to Feature Enablement Presentation>
      • DEV - Upstream code and tests merged: <link to meaningful PR or GitHub Issue>
      • DEV - Upstream documentation merged: <link to meaningful PR or GitHub Issue>
      • DEV - Downstream build attached to advisory: <link to errata>
      • QE - Test plans in Polarion: <link or reference to Polarion>
      • QE - Automated tests merged: <link or reference to automated tests>
      • DOC - Downstream documentation merged: <link to meaningful PR>

      Attachments

        Issue Links

          1.
          Post-merge Testing Sub-task Closed Undefined Unassigned
          2.
          E2E Automation Sub-task Closed Undefined Unassigned
          3.
          CI Integration Sub-task Closed Undefined Unassigned

          Activity

            People

              mariofer@redhat.com Mario Fernandez Herrero
              jfajersk@redhat.com Jan Fajerski
              Junqi Zhao Junqi Zhao
              Brian Burt Brian Burt
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: