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

Extend user customizable TopologySpreadConstraints to all relevant pods


    • Topo spread constraints
    • False
    • None
    • False
    • Not Selected
    • NEW
    • To Do
    • MON-3159Technical Debt
    • NEW
    • 0% To Do, 0% In Progress, 100% Done
    • 0

      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.


      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>

        Post-merge Testing Sub-task Closed Undefined Unassigned
        E2E Automation Sub-task Closed Undefined Unassigned
        CI Integration Sub-task Closed Undefined Unassigned

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