Skip to content

[Umbrella] Workload Affinity Feature - phase I #7064

@RainbowMango

Description

@RainbowMango

Summary:

This issue is used to track the iteration tasks of feature Workload Affinity described at #4968.
See proposal(#6685) for more details.

Iteration Tasks -- Part-1: workload anti-affinity:

  • Finalize the proposal. (@mszacillo, Adding proposal for workload affinity and anti-affinity support #6685)
  • Decouple placement(.spec.placement) in ResourceBinding from PropagationPolicy
    • Refactor the ResourceBinding API to define its own independent placement structure instead of reusing the one from PropagationPolicy, as their placement semantics and fields are not identical.
  • Introduce anti-affinity field to PropagationPolicy.
  • Grab the affinity group from the resource template and populate it in ResourceBinding.
  • Introduce a new feature gate TBD for this feature, started with alpha and disabled by default.
    • Feature gate name candidates: WorkloadAffinity, SingleWorkloadAffinityGroup.
  • karmda-scheduler: build a global index based on the affinity group identifier declared in ResourceBinding.
  • Introduce a filter plugin for filter clusters by taking anti-affinity group into account.
    • A tricky part of this, we need to make sure the ResourceBinding the plugin is looking at is the latest one. (cache might not get a chance to update)
  • Setup E2E tests
    • TBD
  • Add documentation

Iteration Tasks -- Part-2: workload affinity:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Planned In Release 1.17

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions