New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cloud provider for alibaba doesn't work if providerid is not set in kubelet and not exists in node spec at beginning. #278
Comments
Yes, it's by design. The cloud controller manager for Alibaba relies on node.spec.providerid to identify the ecs. Alibaba supports users to customize nodename according to application, so we can not to get provider id from the node name. Also, we will use the conf file to set providerid instead of --provider-id flag. |
hi @gujingit Is there any ETA for conf file feature ? |
Hi @jiangytcn , Regards, |
@shaoyongfeng We can not get provoiderID from node name. 1) Nodename is set by user which can be duplicated, so we may get multiple instances by node name. 2) In some cases, the providerID should be empty, e.g. edge node/ hybrid node. We should not set the providerID for these nodes. |
fixed in pr #282 |
Cloud provider for alibaba cloud just assume providerid exists in node spec when reconciling the node https://github.com/kubernetes/cloud-provider-alibaba-cloud/blob/master/pkg/controller/node/node_controller.go#L135-L138
But --provider-id is optional flag and will be deprecated in new kubenetes version
If you look at the implementation of cloud provider for other hyperscaler, if providerid is not set by kubelet in node spec, it will try to get it based on node name and set it back to node spec
https://github.com/kubernetes/cloud-provider/blob/master/controllers/node/node_controller.go#L531-L540
So, please also enhance alibaba cloud provider to support similar functionality
The text was updated successfully, but these errors were encountered: