Skip to content

Conversation

@priyapande
Copy link

No description provided.

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Dec 5, 2025
@k8s-ci-robot
Copy link
Contributor

This issue is currently awaiting triage.

If the repository mantainers determine this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

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-ci-robot k8s-ci-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Dec 5, 2025
@k8s-ci-robot
Copy link
Contributor

Welcome @priyapande!

It looks like this is your first PR to kubernetes/cloud-provider-gcp 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/cloud-provider-gcp has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Dec 5, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @priyapande. Thanks for your PR.

I'm waiting for a github.com 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. Regular contributors should join the org to skip this step.

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.

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-ci-robot k8s-ci-robot added sig/network Categorizes an issue or PR as relevant to SIG Network. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Dec 5, 2025
package providerconfig

var (
GroupName = "cloud.gke.io"
Copy link
Member

Choose a reason for hiding this comment

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

/hold

this should not be in this repo, see https://github.com/GoogleCloudPlatform/gke-networking-api per example

and then it can be consumed here from the external repo #725

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Dec 6, 2025
@bowei
Copy link
Member

bowei commented Dec 8, 2025

/assign

@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Dec 10, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

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

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

@bowei
Copy link
Member

bowei commented Dec 10, 2025

Can we split off the vendor change in a separate commit? Right now it's 300 files, but I'm assuming most of it is in vendor/

return startGkeMultiNodeControllerWrapper(initContext, completedConfig, cloud, nodeIpamController.nodeIPAMControllerOptions)
},
}
// app.ControllersDisabledByDefault.Insert(names.CloudNodeController)
Copy link
Member

Choose a reason for hiding this comment

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

this multiNodeControllerName has to be disabled by default , and better to have all things aggregated in Line 108-110 so we do not have risk of drifting the code by using these conventions

Copyright 2025 The Kubernetes Authors.
*/

package nodemanager
Copy link
Member

Choose a reason for hiding this comment

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

if this is gke only let's prefix the folder so we make it clear , pkg/controller/gkenodemanager or something


"io"

"github.com/go-ini/ini"
Copy link
Member

Choose a reason for hiding this comment

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

is this dependency really needed?
let's try to avoid bringing cosmetic dependencies if possible

// FilteredSharedInformerFactory wraps the standard factory.
// It embeds the interface so all non-overridden methods (Start, WaitForCacheSync)
// pass through to the underlying factory automatically.
type FilteredSharedInformerFactory struct {
Copy link
Member

Choose a reason for hiding this comment

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

this has to be unexported if its planned to be used here, so or lowercase or under an /internal/ folder https://go.dev/doc/modules/layout#package-or-command-with-supporting-packages so it can not be consumed outside of this repo

"k8s.io/client-go/tools/cache"
)

type FilteredInformer struct {
Copy link
Member

Choose a reason for hiding this comment

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

Comment on lines +77 to +85
klog.Infof("[%s] Creating OSS Cloud Node Controller...", pcKey)
nodeController, err := node.NewCloudNodeController(
filteredFactory.Core().V1().Nodes(),
m.kubeClient,
scopedCloud,
m.config.ComponentConfig.NodeStatusUpdateFrequency.Duration,
m.config.ComponentConfig.NodeController.ConcurrentNodeSyncs,
)
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.

there has to be two independent launchers, and users should opt-in via the standards flags to enable one or other controllers, check this for prior art https://github.com/kubernetes/cloud-provider-gcp/pull/895/files

The litmus test is that the addition of this new controller/folder will have zero impact, and the behavior is governed by the flags

Comment on lines +118 to +125
controllerInitializers[multiNodeControllerName] = app.ControllerInitFuncConstructor{
InitContext: app.ControllerInitContext{
ClientName: multiNodeControllerClientName,
},
Constructor: func(initContext app.ControllerInitContext, completedConfig *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface) app.InitFunc {
return startGkeMultiNodeControllerWrapper(initContext, completedConfig, cloud, nodeIpamController.nodeIPAMControllerOptions)
},
}
Copy link
Member

Choose a reason for hiding this comment

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

commented in 3c0ad5f#r2607023536 , this can be added as an opt-in new controller, that runs independently of the other controller, so users can use the flags to enable or disable one or other controller ...

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

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. sig/network Categorizes an issue or PR as relevant to SIG Network. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants