kubernetes/kubernetes

[sig-cloud-provider] Hybrid cloud native support.

sergelogvinov opened this issue · 4 comments

What would you like to be added?

CLI global flag --hybrid-cloud=true

Why is this needed?

It's possible to run multiple CCMs in one cluster, but it requires a deep understanding of how the cloud provider works. In some cases, we need to add a few checks or extra logic on the CCM side.

The node-controller functions properly; only one CCM can find and initialize the node, while others skip it with an error or log message.

With the node-lifecycle-controller, we need to incorporate more checks into each CCM because we cannot determine if an instance exists or not. For instance, Azure-CCM always responds that the instance exists and is not switched off if the ProviderID is not Azure. The CCM responsible for this cloud can make the correct decision. I believe these checks are better made on the cloud provider side.

When a CCM starts, it registers the name of the cloud using 'cloudprovider.RegisterCloudProvider'. This name usually exists in the ProviderID cloud-provider-name://. For example, we can add the CLI global flag --hybrid-cloud=true, which will use this name from RegisterCloudProvider to check the prefix in the ProviderID. If it does not match, the functions InstanceExists and InstanceShutdown will not be called.

/sig cloud-provider

This issue is currently awaiting triage.

If a SIG or subproject determines 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.

I would like to work on it . Can you please assign me this issue .

I would like to work on it . Can you please assign me this issue .

Thank you @aryasoni98, but we need to wait triage first. I am not core developer, i cannot say is it fit or not.