Skip to content

fix(tas): preserve leader assignment during elastic workload scale-up - #13574

Merged
kubernetes-prow[bot] merged 1 commit into
kubernetes-sigs:mainfrom
RooobinYe:fix/tas-elastic-scale-up-leader-reassignment
Aug 4, 2026
Merged

kubernetes-prow[bot] merged 1 commit into
kubernetes-sigs:mainfrom
RooobinYe:fix/tas-elastic-scale-up-leader-reassignment

Conversation

@RooobinYe

@RooobinYe RooobinYe commented Jul 28, 2026 •

Copy link
Copy Markdown
Member

What type of PR is this?

/kind bug
/area tas

What this PR does / why we need it:

When an elastic workload (ElasticJobsViaWorkloadSlices + ElasticJobsViaWorkloadSlicesWithTAS) with a leader/workers pod set group (e.g. a RayCluster head + workers) scales up, handleScaleUp passed the leader to findTopologyAssignment, which ignores the leader's PreviousAssignment and computes a brand-new placement for it. The result unconditionally overwrote the leader's TopologyAssignment in the new workload slice. Since the assignment translates to NodeAffinity, the running leader pod could be terminated and restarted on another node, destroying cluster state and aborting running jobs. In practice the recomputed leader placement could even come out empty, tripping the internal unexpected remainingCount assertion in the snapshot code.

This PR fixes handleScaleUp to:

  • preserve the leader's previous TopologyAssignment instead of recomputing it, and account for the leader's usage in assumedUsage before placing the delta workers, so the delta placement does not oversubscribe the leader's domain;
  • skip the leader placement in findTopologyAssignment (its only effect for the leader was computing the new placement, i.e. the bug itself; elastic slices with TAS only support Unconstrained, so no co-location constraint is lost);
  • fall back to fresh placement for the whole group when the leader's previous assignment points to a topology domain that no longer exists (mirroring the existing staleness check for the workers' assignment). The check is placed in handleElasticWorkload so it covers the scale-up, scale-down, and same-count paths alike.

Test coverage:

  • Two new unit test cases in TestFindTopologyAssignments: scale-up with a leader preserving the leader assignment, and the stale-leader fallback. Both fail without the fix.
  • A new integration test exercising the full path (flavorassigner → getPreviousTopologyAssignment → handleScaleUp) with a leader+workers pod set group. The scenario packs the group onto a fully-used node so that a recomputed leader placement could never coincide with the original one; the test fails on main with a leader-assignment diff and passes with the fix.

Which issue(s) this PR fixes:

Fixes #12528

Special notes for your reviewer:

  • Scope: the issue's Impact section also mentions capacity double-subtraction on the fit path (FindTopologyAssignmentsForWorkload is invoked without SimulateWorkloadRemoval for the replaced slice while handleScaleUp re-adds the previous pods' usage to assumedUsage). That is a pre-existing problem independent of the leader reassignment fixed here: the preemption path accounts correctly, so a legitimate scale-up is still admitted through slice replacement. This PR didn't fix this problem.
  • While writing the integration test I noticed the existing case "should place scaled-up workload in same topology domain as original" does not set the kueue.x-k8s.io/elastic-job: "true" annotation on the workloads, so it exercises fresh placement rather than the elastic delta path (and its assertions only check that the assignment is non-empty). The new test sets the annotation, matching what the jobframework reconciler propagates from the job. Fixing the existing test is left out of this PR as well.

Does this PR introduce a user-facing change?

TAS: Fixed a bug where scaling up an elastic workload (`ElasticJobsViaWorkloadSlicesWithTAS`) with a leader/workers pod set group could overwrite the running leader pod's `TopologyAssignment` with a newly computed placement, causing the leader pod to be restarted and lose state. Kueue now preserves the leader's existing assignment and only places the newly added workers.

Summary by CodeRabbit

Summary by CodeRabbit

  • Bug Fixes

    • Improved elastic workload scaling for grouped leader and worker pod sets.
    • Preserved the leader’s topology assignment during worker scale-up when still valid.
    • Added fallback behavior when a leader’s previous assignment references unavailable capacity.
    • Ensured worker domain coverage is maintained during workload slice replacement and scaling.
  • Tests

    • Added integration and table-driven coverage for elastic workload slice replacement and scale-up scenarios.

Copilot AI review requested due to automatic review settings July 28, 2026 06:04
@kubernetes-prow kubernetes-prow Bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/bug Categorizes issue or PR as related to a bug. area/tas Topology-Aware Scheduling labels Jul 28, 2026
@netlify

netlify Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for kubernetes-sigs-kueue canceled.

Name Link
🔨 Latest commit 90b0235
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-sigs-kueue/deploys/6a6aea6b1bd32600082649e0

@kubernetes-prow kubernetes-prow Bot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 28, 2026
@kubernetes-prow

Copy link
Copy Markdown

Hi @RooobinYe. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Tip

We noticed you've done this a few times! Consider joining the org to skip this step and gain /lgtm and other bot rights. We recommend asking approvers on your previous PRs to sponsor you.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kubernetes-prow
kubernetes-prow Bot requested review from kshalot and tenzen-y July 28, 2026 06:05
@kubernetes-prow kubernetes-prow Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jul 28, 2026
@coderabbitai

coderabbitai Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Elastic TAS scale-up now preserves valid leader assignments, detects stale leader assignments, and falls back to fresh placement when needed. Unit and integration tests cover leader stability, worker domain expansion, and current-capacity placement.

Changes

Elastic TAS scale-up

Layer / File(s) Summary
Leader assignment handling
pkg/cache/scheduler/tas_elastic_workloads.go
Stale leader assignments trigger fresh placement, while valid assignments are preserved and accounted for during worker delta placement.
Scheduler placement coverage
pkg/cache/scheduler/tas_cache_test.go
Adds scale-up cases for leader preservation and fresh placement when the leader references an unavailable domain.
Integration scale-up coverage
test/integration/singlecluster/tas/tas_test.go
Adds assignment lookup and domain-count helpers, plus coverage for replacement slices that scale workers up while preserving leader placement and worker domains.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant WorkloadSlice
  participant TAScheduler
  participant PodSetAssignments
  WorkloadSlice->>TAScheduler: replace slice with increased worker count
  TAScheduler->>PodSetAssignments: inspect leader previousAssignment
  TAScheduler->>PodSetAssignments: place worker delta
  PodSetAssignments-->>TAScheduler: combined leader and worker assignments
  TAScheduler-->>WorkloadSlice: admit replacement slice
Loading

Possibly related PRs

Suggested labels: area/elastic-jobs, area/integrations, wg/workload-aware-scheduling

Suggested reviewers: tenzen-y, kshalot, j-skiba, amy, pbundyra

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: preserving leader assignment during elastic workload scale-up, which is the primary objective across all modified files.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes a TAS elastic scale-up bug where a leader PodSet’s TopologyAssignment could be recomputed (and overwritten) during worker scale-up, potentially forcing an already-running leader/head pod to restart on a different node and lose state. The change keeps the leader’s prior placement stable while still placing only the delta workers, and adds regression coverage.

Changes:

  • Preserve the leader PodSet’s previous TopologyAssignment during elastic scale-up and account for the leader’s resource usage before placing delta workers.
  • Detect stale leader PreviousAssignment domains early and fall back to full “fresh placement” for the whole group when the leader’s prior domain no longer exists.
  • Add unit + integration tests covering preserved-leader scale-up and stale-leader fallback behavior.

Note: If you want me to consult AGENTS.md, please acknowledge that its usage is experimental and comes with no guarantees of backwards/future compatibility.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
pkg/cache/scheduler/tas_elastic_workloads.go Preserves leader assignment during elastic scale-up; adds stale-leader detection to force fresh placement when needed.
pkg/cache/scheduler/tas_cache_test.go Adds unit tests validating leader preservation on scale-up and fallback behavior when the leader’s previous domain is stale.
test/integration/singlecluster/tas/tas_test.go Adds an integration scenario ensuring leader assignment is unchanged across worker scale-up via workload slice replacement.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
test/integration/singlecluster/tas/tas_test.go (1)

6939-7070: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Consider adding an integration-level negative scenario (stale leader domain).

This new spec only covers the positive path (leader assignment preserved during scale-up). The stale-leader fallback (previous leader domain referencing a deleted node) is covered at the unit level (tas_cache_test.go) but has no integration-level counterpart here, even though this describe block is otherwise dedicated to elastic scale-up leader/worker behavior. Consider adding a companion spec that deletes the leader's backing node before creating the replacement slice and asserts fresh placement for the whole group, reusing the existing node-deletion pattern already used elsewhere in this file (e.g. "should evict workload when multiple assigned nodes are deleted").

As per path instructions, test/integration/**/*.go: "Verify tests use envtest and follow the existing table-driven test patterns with Ginkgo/Gomega. Ensure new test cases cover both positive and negative scenarios."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/integration/singlecluster/tas/tas_test.go` around lines 6939 - 7070, The
elastic scale-up integration coverage lacks a stale-leader-domain negative
scenario. Add a companion Ginkgo spec near “should preserve the leader
assignment when scaling up workers in a pod set group” that deletes the leader’s
backing node using the existing node-deletion pattern, creates the replacement
slice, and asserts the entire group receives fresh placement rather than reusing
the stale leader domain; follow the file’s envtest Ginkgo/Gomega and
table-driven conventions where applicable.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@test/integration/singlecluster/tas/tas_test.go`:
- Around line 6939-7070: The elastic scale-up integration coverage lacks a
stale-leader-domain negative scenario. Add a companion Ginkgo spec near “should
preserve the leader assignment when scaling up workers in a pod set group” that
deletes the leader’s backing node using the existing node-deletion pattern,
creates the replacement slice, and asserts the entire group receives fresh
placement rather than reusing the stale leader domain; follow the file’s envtest
Ginkgo/Gomega and table-driven conventions where applicable.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: ab963d54-c775-4d2a-8103-ab031123e1cc

📥 Commits

Reviewing files that changed from the base of the PR and between bdba51d and 1caef59.

📒 Files selected for processing (3)
  • pkg/cache/scheduler/tas_cache_test.go
  • pkg/cache/scheduler/tas_elastic_workloads.go
  • test/integration/singlecluster/tas/tas_test.go

@ekam-walia

Copy link
Copy Markdown
Member

/ok-to-test

@kubernetes-prow kubernetes-prow Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 28, 2026
Comment on lines +6982 to +6989
for _, psa := range wl1.Status.Admission.PodSetAssignments {
switch psa.Name {
case "leader":
originalLeaderAssignment = utiltas.InternalFrom(psa.TopologyAssignment)
case "workers":
originalWorkersAssignment = utiltas.InternalFrom(psa.TopologyAssignment)
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's berak it down using some helpers like podSetAssignmentByName. I suppose we already should have such helpers

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a test-local podSetAssignmentByName and used it through topologyAssignmentByName to simplify the assertions

Comment on lines +7048 to +7065
for _, psa := range wl2.Status.Admission.PodSetAssignments {
g.Expect(psa.TopologyAssignment).ShouldNot(gomega.BeNil())
newAssignment := utiltas.InternalFrom(psa.TopologyAssignment)
switch psa.Name {
case "leader":
g.Expect(newAssignment).Should(gomega.BeComparableTo(originalLeaderAssignment))
case "workers":
g.Expect(utiltas.CountPodsInAssignment(newAssignment)).Should(gomega.Equal(int32(4)))
newCounts := make(map[utiltas.TopologyDomainID]int32, len(newAssignment.Domains))
for _, domain := range newAssignment.Domains {
newCounts[utiltas.DomainID(domain.Values)] += domain.Count
}
for _, domain := range originalWorkersAssignment.Domains {
g.Expect(newCounts[utiltas.DomainID(domain.Values)]).Should(
gomega.BeNumerically(">=", domain.Count),
"previous workers domain %v must be preserved", domain.Values)
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Break this down using helper functions.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, I used podSetAssignmentByName.

@mimowo mimowo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @sohankunkerkar ptal

features.ElasticJobsViaWorkloadSlicesWithTAS: true,
},
},
"elastic workload scale up with leader: stale leader assignment falls back to fresh placement": {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this test has one node with 8 CPU and pods requesting 1 CPU each, so everything lands on x1 trivially. I think it proves the fallback path works but it doesn't really exercise the group replacement logic since there's only one place to go!?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now the test has x1 node with 2 CPU, x2 node with 3 CPU and x3 node has 3 CPU. Workers are expected has x1 *1 + x2 * 3

During elastic workload scale-up, handleScaleUp recomputed the leader's
placement and unconditionally overwrote its TopologyAssignment, which could
relocate (and restart) the running leader pod. Preserve the leader's previous
assignment instead and account for its usage before placing the delta workers.
If the leader's previous assignment points to a domain that no longer exists,
fall back to fresh placement for the whole group.

Covered by a unit test at the snapshot layer and an integration test that
exercises the full flavorassigner path with a leader+workers pod set group.
@RooobinYe
RooobinYe force-pushed the fix/tas-elastic-scale-up-leader-reassignment branch from 1caef59 to 90b0235 Compare July 30, 2026 06:08

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
test/integration/singlecluster/tas/tas_test.go (1)

6971-7081: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Well-constructed positive-path test; consider adding a negative (stale-leader) integration scenario for full path-instruction coverage.

The scale-up test itself correctly forces and verifies the exact regression scenario (leader's node fully packed, forcing delta workers elsewhere) and asserts leader-assignment stability plus worker-domain preservation. However, only the positive path is covered here — the stale-leader-assignment fallback (already unit-tested in pkg/cache/scheduler/tas_cache_test.go) has no integration-level counterpart in this file.

As per path instructions, "Ensure new test cases cover both positive and negative scenarios." Consider adding a companion It block (e.g., leader previousAssignment pointing at a deleted node) to confirm the fallback wiring end-to-end, though the unit test already validates the core logic precisely.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/integration/singlecluster/tas/tas_test.go` around lines 6971 - 7081, The
integration coverage only exercises valid leader-assignment preservation and
lacks the stale-leader fallback path. Add a companion `ginkgo.It` scenario near
the existing scale-up test that makes the leader’s previous assignment reference
a deleted or unavailable node, then verifies replacement admission succeeds and
the leader receives a valid fallback assignment while worker placement remains
correct. Reuse the existing workload, topology-assignment, and domain-count
helpers and preserve the current positive-path test.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@test/integration/singlecluster/tas/tas_test.go`:
- Around line 6971-7081: The integration coverage only exercises valid
leader-assignment preservation and lacks the stale-leader fallback path. Add a
companion `ginkgo.It` scenario near the existing scale-up test that makes the
leader’s previous assignment reference a deleted or unavailable node, then
verifies replacement admission succeeds and the leader receives a valid fallback
assignment while worker placement remains correct. Reuse the existing workload,
topology-assignment, and domain-count helpers and preserve the current
positive-path test.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 40a95891-25f7-4db5-b0ae-8d74fec7da84

📥 Commits

Reviewing files that changed from the base of the PR and between 1caef59 and 90b0235.

📒 Files selected for processing (3)
  • pkg/cache/scheduler/tas_cache_test.go
  • pkg/cache/scheduler/tas_elastic_workloads.go
  • test/integration/singlecluster/tas/tas_test.go

@mimowo

mimowo commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

/area elastic-jobs

@kubernetes-prow kubernetes-prow Bot added the area/elastic-jobs Issues or PRs related to ElasticJobs label Aug 3, 2026
@mimowo

mimowo commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

/approve
/cherrypick release-0.19
/cherrypick release-0.18
Thank you ! cc @sohankunkerkar, would you like to finalize the review?

@k8s-infra-cherrypick-robot

Copy link
Copy Markdown
Contributor

@mimowo: once the present PR merges, I will cherry-pick it on top of release-0.18, release-0.19 in new PRs and assign them to you.

Details

In response to this:

/approve
/cherrypick release-0.19
/cherrypick release-0.18
Thank you ! cc @sohankunkerkar, would you like to finalize the review?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kubernetes-prow kubernetes-prow Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 3, 2026

@sohankunkerkar sohankunkerkar left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@kubernetes-prow kubernetes-prow Bot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 4, 2026
@kubernetes-prow

Copy link
Copy Markdown

LGTM label has been added.

DetailsGit tree hash: 557a91f9ac932f7d79d432b65702d755e862daf7

@kubernetes-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mimowo, RooobinYe, sohankunkerkar

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [mimowo,sohankunkerkar]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubernetes-prow
kubernetes-prow Bot merged commit f4cb91f into kubernetes-sigs:main Aug 4, 2026
56 checks passed
@kubernetes-prow kubernetes-prow Bot added this to the v0.20 milestone Aug 4, 2026
@k8s-infra-cherrypick-robot

Copy link
Copy Markdown
Contributor

@mimowo: new pull request created: #13813

Details

In response to this:

/approve
/cherrypick release-0.19
/cherrypick release-0.18
Thank you ! cc @sohankunkerkar, would you like to finalize the review?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-infra-cherrypick-robot

Copy link
Copy Markdown
Contributor

@mimowo: #13574 failed to apply on top of branch "release-0.18":

Applying: fix(tas): preserve leader assignment during elastic workload scale-up
Using index info to reconstruct a base tree...
M	pkg/cache/scheduler/tas_cache_test.go
M	pkg/cache/scheduler/tas_elastic_workloads.go
M	test/integration/singlecluster/tas/tas_test.go
Falling back to patching base and 3-way merge...
Auto-merging pkg/cache/scheduler/tas_cache_test.go
CONFLICT (content): Merge conflict in pkg/cache/scheduler/tas_cache_test.go
Auto-merging pkg/cache/scheduler/tas_elastic_workloads.go
CONFLICT (content): Merge conflict in pkg/cache/scheduler/tas_elastic_workloads.go
Auto-merging test/integration/singlecluster/tas/tas_test.go
CONFLICT (content): Merge conflict in test/integration/singlecluster/tas/tas_test.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0001 fix(tas): preserve leader assignment during elastic workload scale-up

Details

In response to this:

/approve
/cherrypick release-0.19
/cherrypick release-0.18
Thank you ! cc @sohankunkerkar, would you like to finalize the review?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@mimowo

mimowo commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

@RooobinYe could you please prepare the CP for 0.18?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/elastic-jobs Issues or PRs related to ElasticJobs area/tas Topology-Aware Scheduling cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/bug Categorizes issue or PR as related to a bug. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Arbitrary Leader Reassignment in Elastic TAS Workload Scale-Up in pkg/cache/scheduler/tas_elastic_workloads.go

8 participants