Skip to content

resource group: starter mode support degrade to default RU group#68105

Open
ystaticy wants to merge 23 commits into
pingcap:masterfrom
ystaticy:use_default_ru
Open

resource group: starter mode support degrade to default RU group#68105
ystaticy wants to merge 23 commits into
pingcap:masterfrom
ystaticy:use_default_ru

Conversation

@ystaticy

@ystaticy ystaticy commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: ref #69671

Problem Summary:

What changed and how does it work?

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No need to test
    • I checked and no code files have been changed.

Side effects

  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Breaking backward compatibility

Documentation

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.

None

Summary by CodeRabbit

Release Notes

  • Bug Fixes
    • Improved resource group controller resilience with degraded-mode fallback in Starter deployments, including default RU token-bucket settings.
    • Enhanced controller wait/retry behavior for VIP namespaces to better handle transient resource group issues.
  • New Features
    • Starter deployments now capture and use the pod namespace from --starter-additional-params, available via runtime configuration.
  • Tests
    • Added controller-focused tests for degraded fallback, non-retryable error handling, and VIP wait-retry option behavior.
  • Chores
    • Updated Bazel configuration and test sharding for the domain library.

Signed-off-by: ystaticy <y_static_y@sina.com>
@ti-chi-bot ti-chi-bot Bot added do-not-merge/invalid-title do-not-merge/needs-linked-issue do-not-merge/needs-tests-checked release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 29, 2026
@tiprow

tiprow Bot commented Apr 29, 2026

Copy link
Copy Markdown

Hi @ystaticy. Thanks for your PR.

PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test all.

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.

@coderabbitai

coderabbitai Bot commented Apr 29, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The domain runaway controller now supports conditional degraded-mode and VIP retry options, with tests covering fallback and error behavior. Starter configuration captures the runtime pod namespace from explicitly supplied additional parameters.

Changes

Runaway controller and Starter configuration

Layer / File(s) Summary
Controller options and wiring
pkg/domain/runaway.go, pkg/domain/BUILD.bazel
Builds conditional resource-control options and passes them to the resource group controller, with updated Bazel dependencies.
Degraded fallback and controller validation
pkg/domain/runaway_test.go, pkg/domain/BUILD.bazel
Tests Starter degraded RU fallback, non-retryable errors, missing switch-group handling, and namespace-dependent retry wiring; updates test sources, dependencies, and sharding.
Starter pod namespace override
pkg/config/config.go, cmd/tidb-server/main.go, cmd/tidb-server/main_test.go
Stores non-serialized pod namespace metadata and populates it from explicitly supplied Starter parameters, with test coverage.

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

Sequence Diagram(s)

sequenceDiagram
  participant TiDBServer
  participant DomainController
  participant ResourceGroupProvider
  TiDBServer->>TiDBServer: parse Starter pod namespace
  TiDBServer->>DomainController: initialize with Starter runtime metadata
  DomainController->>ResourceGroupProvider: request resource group
  ResourceGroupProvider-->>DomainController: return group or error
  DomainController-->>TiDBServer: apply fallback settings or propagate error
Loading

Suggested labels: approved, lgtm

Suggested reviewers: d3hunter, yudongusa

Poem

🐰 Options bloom where runaway hops,
Fallback tokens fill the drops.
VIP retries dance in line,
Starter pods record their sign.
Namespace tucked in safely tight.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The template is present, but the Problem Summary and What changed/how does it work sections are empty, leaving the PR description largely incomplete. Add a concise problem summary and a clear explanation of the code changes and behavior, plus any remaining required details from the template.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the starter-mode resource group degradation change.
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.
✨ 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.

@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 (3)
pkg/domain/runaway_test.go (2)

109-113: Prefer field-level assertions over full proto struct equality.

Asserting the whole ResourceGroup makes the test fragile to unrelated default-field changes. Assert the fallback-specific fields (name/mode/fill-rate/burst-limit) instead.

♻️ Suggested change
 	group, err := controllerWithFallback.GetResourceGroup("test-group")
 	require.NoError(t, err)
-	require.Equal(t, &rmpb.ResourceGroup{
-		Name:       "test-group",
-		Mode:       rmpb.GroupMode_RUMode,
-		RUSettings: newDefaultDegradedRUSettings(),
-	}, group)
+	require.NotNil(t, group)
+	require.Equal(t, "test-group", group.GetName())
+	require.Equal(t, rmpb.GroupMode_RUMode, group.GetMode())
+	require.NotNil(t, group.GetRUSettings())
+	require.NotNil(t, group.GetRUSettings().GetRU())
+	require.NotNil(t, group.GetRUSettings().GetRU().GetSettings())
+	require.Equal(t, int64(defaultDegradedRUFillRate), group.GetRUSettings().GetRU().GetSettings().GetFillRate())
+	require.Equal(t, int64(defaultDegradedRUBurstLimit), group.GetRUSettings().GetRU().GetSettings().GetBurstLimit())
As per coding guidelines, keep test changes minimal and deterministic; avoid broad golden/testdata churn unless required.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/domain/runaway_test.go` around lines 109 - 113, The test currently
asserts full equality against a ResourceGroup proto which is fragile; instead
update the assertion to check only the fallback-specific fields: verify
group.Name == "test-group", group.Mode == rmpb.GroupMode_RUMode, and that
group.RUSettings.FillRate and group.RUSettings.BurstLimit match the expected
values produced by newDefaultDegradedRUSettings() (or assert those specific
numeric values), leaving other proto fields untouched to avoid broad test churn.

64-66: Return a closed channel from the Watch stub for deterministic teardown.

An unclosed channel can leave background consumers blocked in some implementations. Returning a pre-closed channel makes this stub safer and deterministic.

♻️ Suggested change
 func (s *resourceGroupProviderStub) Watch(context.Context, []byte, ...opt.MetaStorageOption) (chan []*meta_storagepb.Event, error) {
-	return make(chan []*meta_storagepb.Event), nil
+	ch := make(chan []*meta_storagepb.Event)
+	close(ch)
+	return ch, nil
 }
As per coding guidelines, keep test changes minimal and deterministic; avoid broad golden/testdata churn unless required.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/domain/runaway_test.go` around lines 64 - 66, The Watch stub in
resourceGroupProviderStub should return a pre-closed channel to avoid hanging
background consumers: in the Watch method (resourceGroupProviderStub.Watch)
create a channel of type chan []*meta_storagepb.Event, close it immediately, and
then return that closed channel with nil error so teardown is deterministic and
safe.
pkg/domain/runaway.go (1)

60-64: Tighten VIP namespace matching to avoid accidental opt-in.

strings.Contains(os.Getenv("NAMESPACE"), "vip") also matches names like nonvip. A stricter token/prefix/suffix match would avoid enabling retry policy unintentionally.

♻️ Suggested refinement
 func newResourceGroupsControllerOptions() []rmclient.ResourceControlCreateOption {
 	opts := []rmclient.ResourceControlCreateOption{
 		rmclient.WithMaxWaitDuration(runaway.MaxWaitDuration),
 		rmclient.WithDegradedModeWaitDuration(defaultDegradedModeWaitTimeout),
 		rmclient.WithDegradedRUSettings(newDefaultDegradedRUSettings()),
 	}
-	if strings.Contains(os.Getenv("NAMESPACE"), "vip") {
+	ns := strings.ToLower(os.Getenv("NAMESPACE"))
+	if ns == "vip" || strings.HasPrefix(ns, "vip-") || strings.HasSuffix(ns, "-vip") || strings.Contains(ns, "-vip-") {
 		opts = append(opts,
 			rmclient.WithWaitRetryInterval(vipWaitRetryInterval),
 			rmclient.WithWaitRetryTimes(vipWaitRetryTimes),
 		)
 	}
 	return opts
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/domain/runaway.go` around lines 60 - 64, The current check uses
strings.Contains(os.Getenv("NAMESPACE"), "vip") which unintentionally matches
names like "nonvip"; change the condition in the block that appends
rmclient.WithWaitRetryInterval and rmclient.WithWaitRetryTimes to use a stricter
match (e.g., exact match, prefix/suffix, or token boundary) against the
NAMESPACE environment value instead of Contains; modify the condition
surrounding opts = append(...) so it checks os.Getenv("NAMESPACE") == "vip" or
uses strings.HasPrefix/HasSuffix or a regex like `(^|-)vip(-|$)` to only opt-in
true VIP namespaces while retaining the same appending of
rmclient.WithWaitRetryInterval(vipWaitRetryInterval) and
rmclient.WithWaitRetryTimes(vipWaitRetryTimes).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@pkg/domain/runaway_test.go`:
- Around line 109-113: The test currently asserts full equality against a
ResourceGroup proto which is fragile; instead update the assertion to check only
the fallback-specific fields: verify group.Name == "test-group", group.Mode ==
rmpb.GroupMode_RUMode, and that group.RUSettings.FillRate and
group.RUSettings.BurstLimit match the expected values produced by
newDefaultDegradedRUSettings() (or assert those specific numeric values),
leaving other proto fields untouched to avoid broad test churn.
- Around line 64-66: The Watch stub in resourceGroupProviderStub should return a
pre-closed channel to avoid hanging background consumers: in the Watch method
(resourceGroupProviderStub.Watch) create a channel of type chan
[]*meta_storagepb.Event, close it immediately, and then return that closed
channel with nil error so teardown is deterministic and safe.

In `@pkg/domain/runaway.go`:
- Around line 60-64: The current check uses
strings.Contains(os.Getenv("NAMESPACE"), "vip") which unintentionally matches
names like "nonvip"; change the condition in the block that appends
rmclient.WithWaitRetryInterval and rmclient.WithWaitRetryTimes to use a stricter
match (e.g., exact match, prefix/suffix, or token boundary) against the
NAMESPACE environment value instead of Contains; modify the condition
surrounding opts = append(...) so it checks os.Getenv("NAMESPACE") == "vip" or
uses strings.HasPrefix/HasSuffix or a regex like `(^|-)vip(-|$)` to only opt-in
true VIP namespaces while retaining the same appending of
rmclient.WithWaitRetryInterval(vipWaitRetryInterval) and
rmclient.WithWaitRetryTimes(vipWaitRetryTimes).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e424e4fc-124f-4549-a80c-a8482598e532

📥 Commits

Reviewing files that changed from the base of the PR and between 49c7713 and 929c7ce.

📒 Files selected for processing (3)
  • pkg/domain/BUILD.bazel
  • pkg/domain/runaway.go
  • pkg/domain/runaway_test.go

@codecov

codecov Bot commented Apr 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 17.64706% with 28 lines in your changes missing coverage. Please review.
✅ Project coverage is 75.4428%. Comparing base (2964713) to head (8b9cf6d).
⚠️ Report is 27 commits behind head on master.

Additional details and impacted files
@@               Coverage Diff                @@
##             master     #68105        +/-   ##
================================================
- Coverage   76.3194%   75.4428%   -0.8766%     
================================================
  Files          2041       2087        +46     
  Lines        560092     587495     +27403     
================================================
+ Hits         427459     443223     +15764     
- Misses       131732     141644      +9912     
- Partials        901       2628      +1727     
Flag Coverage Δ
integration 45.6315% <17.6470%> (+5.9263%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
dumpling 60.4471% <ø> (ø)
parser ∅ <ø> (∅)
br 64.0282% <ø> (+1.3068%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ystaticy ystaticy changed the title support degrade to default RU group resource group: support degrade to default RU group Jun 16, 2026
Signed-off-by: ystaticy <y_static_y@sina.com>

@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)
pkg/domain/runaway_test.go (1)

82-138: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider extracting the repeated controller-creation/assertion pattern.

The Starter-edition and Community-edition blocks (lines 98-119 and 121-138) duplicate the controller construction, start, and defer-stop pattern almost verbatim aside from the edition value and expected outcome. A small helper (e.g., newTestController(t, ctx, provider, id)) or splitting into two t.Run subtests would reduce duplication and make failures easier to attribute.

🤖 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 `@pkg/domain/runaway_test.go` around lines 82 - 138, The test in
runaway_test.go repeats the same ResourceGroupController setup, Start, and
deferred Stop flow for both edition cases. Refactor the duplicated
controller-creation/assertion pattern around NewResourceGroupController, Start,
Stop, and GetResourceGroup into a small helper or separate t.Run subtests so the
Starter and Community scenarios only differ in TiDBEdition and expected result,
while keeping the assertions clear and failure attribution easier.
🤖 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 `@pkg/domain/runaway_test.go`:
- Around line 82-138: The test in runaway_test.go repeats the same
ResourceGroupController setup, Start, and deferred Stop flow for both edition
cases. Refactor the duplicated controller-creation/assertion pattern around
NewResourceGroupController, Start, Stop, and GetResourceGroup into a small
helper or separate t.Run subtests so the Starter and Community scenarios only
differ in TiDBEdition and expected result, while keeping the assertions clear
and failure attribution easier.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b3cac21d-5089-4985-9d4d-e92abcfd2496

📥 Commits

Reviewing files that changed from the base of the PR and between 929c7ce and 40d3dea.

📒 Files selected for processing (3)
  • pkg/domain/BUILD.bazel
  • pkg/domain/runaway.go
  • pkg/domain/runaway_test.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • pkg/domain/runaway.go
  • pkg/domain/BUILD.bazel

@ystaticy ystaticy changed the title resource group: support degrade to default RU group resource group: starter mode support degrade to default RU group Jul 7, 2026

@D3Hunter D3Hunter 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.

Summary

  • Total findings: 2
  • Inline comments: 2
  • Summary-only findings (no inline anchor): 0
Findings (highest risk first)

⚠️ [Major] (2)

  1. Degraded RU fallback masks lookup failures and accepts missing switch groups (pkg/domain/runaway.go:62)
  2. Environment substring gate hides VIP token-wait retry policy (pkg/domain/runaway.go:65)

Comment thread pkg/domain/runaway.go Outdated
Comment thread pkg/domain/runaway.go Outdated
Comment thread pkg/domain/runaway.go Outdated
Comment thread pkg/domain/runaway.go Outdated
Comment thread pkg/domain/runaway.go Outdated
Comment thread pkg/domain/runaway.go Outdated
Signed-off-by: ystaticy <y_static_y@sina.com>
@ti-chi-bot ti-chi-bot Bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jul 10, 2026
ystaticy added 2 commits July 13, 2026 15:49
Signed-off-by: ystaticy <y_static_y@sina.com>
Signed-off-by: ystaticy <y_static_y@sina.com>

@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.

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@cmd/tidb-server/main.go`:
- Around line 483-486: Ensure the external workload manager initialized in the
deploymode.IsStarter() branch is closed before every os.Exit path, including
keyspace-activation and final nonzero exits. Update the shutdown flow around
closeExternalWorkloadManager so it runs explicitly before those exits rather
than relying only on defer.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: dd5df819-32ad-4f56-892a-36b567243593

📥 Commits

Reviewing files that changed from the base of the PR and between df69722 and 8054a7f.

📒 Files selected for processing (3)
  • cmd/tidb-server/main.go
  • cmd/tidb-server/main_test.go
  • pkg/config/config.go

Signed-off-by: ystaticy <y_static_y@sina.com>
@ti-chi-bot ti-chi-bot Bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jul 14, 2026
Signed-off-by: ystaticy <y_static_y@sina.com>
@ystaticy

Copy link
Copy Markdown
Contributor Author

/retest-required

Comment thread pkg/domain/resource_group_controller_options.go

@D3Hunter D3Hunter 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.

Test-structure and coverage review. The inline comments focus on fallback error semantics, exact RU/retry configuration assertions, and clearer subtest organization.

Comment thread pkg/domain/resource_group_controller_options.go Outdated
Comment thread pkg/domain/runaway_test.go Outdated
Comment thread pkg/domain/runaway_test.go Outdated
Comment thread pkg/domain/runaway_test.go Outdated
Comment thread pkg/domain/runaway_test.go Outdated
Comment thread pkg/domain/runaway_test.go Outdated
if deploymode.IsStarter() {
opts = append(opts,
// Keep degraded-group synthesis inside the controller so degraded
// resource groups are not inserted into the controller cache.

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.

Preserve degraded controller state across request and response accounting

Keeping a synthetic group out of the normal metadata cache avoids making stale fallback metadata look authoritative, but the pinned PD controller currently returns an entirely ephemeral groupCostController as a result.

The TiKV interceptor calls OnRequestWait and later OnResponseWait. The request path uses that ephemeral controller, while the response path only calls loadGroupController; because the degraded controller was never stored, it returns empty consumption and logs that the resource group does not exist. The next RPC constructs another controller with a fresh FillRate worth of tokens. As a result, the configured 2,000,000 RU/s setting is effectively a per-RPC allowance rather than a shared limit, response-side RU settlement is lost, and the failing RM lookup is repeated.

Please keep marked degraded controller state separately from the normal metadata cache, share it across request/response accounting, retry the real metadata lookup with bounded backoff, and replace the degraded state immediately after recovery. A regression should exercise multiple request/response pairs during provider failure, verify shared limiter/accounting state and bounded provider calls, then verify recovery to the real group.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the detailed analysis.

I agree that preserving a separate degraded controller state would make the degraded mode more complete from an accounting/throttling perspective. However, that is beyond the original intent of this PR.

For Starter, this fallback is only a temporary best-effort path when GetResourceGroup fails, so that the request path does not return an error and hurt the user experience. The fallback RU setting is
meant to be permissive and usable, not to provide an exact shared 2,000,000 RU/s limit across RPCs while RM is unavailable. In this scenario, availability/UX is more important than precise degraded-mode RU
accounting.

Adding a separate degraded controller cache, bounded retry/recovery state, and request/response accounting preservation would make this path much more complex. Unless we want to define a stricter degraded-
mode contract here, I would prefer to keep this PR scoped to the simple Starter fallback behavior.

I can add a code comment to make this intention explicit if that helps.

ystaticy added 3 commits July 15, 2026 22:34
Signed-off-by: ystaticy <y_static_y@sina.com>
Signed-off-by: ystaticy <y_static_y@sina.com>
Signed-off-by: ystaticy <y_static_y@sina.com>
@ti-chi-bot ti-chi-bot Bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Jul 20, 2026
Signed-off-by: ystaticy <y_static_y@sina.com>
@ystaticy

Copy link
Copy Markdown
Contributor Author

/retest-required

Signed-off-by: ystaticy <y_static_y@sina.com>
@ti-chi-bot ti-chi-bot Bot added the needs-1-more-lgtm Indicates a PR needs 1 more LGTM. label Jul 21, 2026
@ti-chi-bot

ti-chi-bot Bot commented Jul 21, 2026

Copy link
Copy Markdown

[LGTM Timeline notifier]

Timeline:

  • 2026-07-21 07:14:34.325007607 +0000 UTC m=+1302660.361102663: ☑️ agreed by D3Hunter.

Comment thread cmd/tidb-server/main.go Outdated
podName string
podIP string
podNamespace string
enableGetResourceGroupDegraded bool

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.

Could we shorten this to enableRGFallback (and correspondingly use EnableRGFallback / enable-rg-fallback)? RG is clear as “resource group” in this context, while fallback describes the behavior more directly: when a resource-group lookup fails, the controller synthesizes a degraded group instead of making GetResourceGroup itself “degraded.” I would avoid RUFallback, since this controls resource-group lookup fallback rather than general RU processing.

@ti-chi-bot

ti-chi-bot Bot commented Jul 21, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: ChangRui-Ryan, D3Hunter
Once this PR has been reviewed and has the lgtm label, please assign bb7133, terry1purcell for approval. For more information see the Code Review Process.
Please ensure that each of them provides their approval before proceeding.

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

Details Needs approval from an approver in each of these files:

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

@ti-chi-bot

ti-chi-bot Bot commented Jul 21, 2026

Copy link
Copy Markdown

@ChangRui-Ryan: adding LGTM is restricted to approvers and reviewers in OWNERS files.

Details

In response to this:

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.

Signed-off-by: ystaticy <y_static_y@sina.com>
@ti-chi-bot ti-chi-bot Bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jul 21, 2026
Signed-off-by: ystaticy <y_static_y@sina.com>
@ChangRui-Ryan

Copy link
Copy Markdown
Contributor

/retest

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

Labels

needs-1-more-lgtm Indicates a PR needs 1 more LGTM. release-note-none Denotes a PR that doesn't merit a release note. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants