Skip to content

Conversation

@hajnalmt
Copy link
Contributor

What type of PR is this?

Cherry-picking to the release-1.12 branch:
Relevant part of:
#4792
and:
#4786

Which issue(s) this PR fixes:

Fixes #4827

Does this PR introduce a user-facing change?

fix(pg_controller): replicaset update did not synchronize the new podgroup informations
fix(pg_controller): replicasets were creating an unnecessary podgroup even though KubeGroupNameAnnotation was present

zjh and others added 2 commits December 20, 2025 12:08
…roup-related information

Signed-off-by: zjh <zhongjiahua@medlinker.com>
Replicasets have created a podgroup that wasn't used by the pods
when the "scheduling.k8s.io/group-name" annotation was on the pods.

Signed-off-by: Hajnal Máté <hajnalmt@gmail.com>
@volcano-sh-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign wangyang0616 for approval. For more information see the Kubernetes Code Review Process.

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

@gemini-code-assist
Copy link

Summary of Changes

Hello @hajnalmt, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request integrates two critical fixes into the release-1.12 branch, addressing issues within the PodGroup controller. The primary goal is to improve the robustness and correctness of PodGroup management by preventing redundant PodGroup creations and ensuring that existing PodGroups are properly updated and synchronized with their associated ReplicaSets. This resolves a bug where PodGroup information was not being updated and another where unnecessary PodGroups were being generated.

Highlights

  • PodGroup Creation Logic: Refactored the PodGroup creation logic to prevent the unnecessary creation of new PodGroups for pods that are already associated with an existing PodGroup via the KubeGroupNameAnnotationKey.
  • PodGroup Synchronization: Enhanced the PodGroup controller to synchronize and update PodGroup-related information (e.g., minMember) when ReplicaSets are updated, ensuring that changes are correctly reflected in the associated PodGroups.
  • Code Idiom Update: Updated a loop in pg_controller.go from an indexed for loop to a for range loop, improving code readability and adhering to modern Go idioms.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@volcano-sh-bot volcano-sh-bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Dec 20, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request cherry-picks two fixes related to PodGroup handling for ReplicaSets. My review identifies two main issues. First, a change in pg_controller.go uses a Go 1.22+ feature (for range over an integer) which could break the build for the release-1.12 branch if it uses an older Go version; I've recommended reverting this for compatibility. Second, in pg_controller_handler.go, the logic to prevent creating unnecessary PodGroups is flawed and incorrectly blocks legitimate updates to existing PodGroups, which is a regression. I've suggested a corrected logic to fix this while still achieving the original goal.

// In the upgrade scenario, need to synchronize and update the podgroup-related information.
// For example, if you update `scheduling.volcano.sh/group-min-member: "2"`, the podgroup's `minMember` needs to be updated to 2.
err := pg.createOrUpdateNormalPodPG(&pod)
if err != nil {
Copy link
Member

Choose a reason for hiding this comment

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

I am concerned we donot even have a test for this bug fix

Copy link
Contributor Author

@hajnalmt hajnalmt Dec 22, 2025

Choose a reason for hiding this comment

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

This bothers me too. 👍 shall I write one? Maybe we don't need in these cherrypicks but it would be good to be present at least on master.
#4786 didn't have one and I just cherrypicked it.

Copy link
Member

Choose a reason for hiding this comment

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

Yes, i think we need one.

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

Labels

size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants