### 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
[sig-cloud-provider] Hybrid cloud native support. 
This is a GitHub Issue
repo:kubernetes
owner:kubernetes
Title : [sig-cloud-provider] Hybrid cloud native support. 
Issue date:

--- start body ---
### 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
--- end body ---
