Tolerate uninitialized taint in CCM deployment - #1517
Conversation
Kubelet sets the taint node.cloudprovider.kubernetes.io/uninitialized on each node when it runs with --cloud-provider=external. The deployment has no tolerations block, so the scheduler cannot place the pod, and it stays Pending on a new cluster. Add a toleration for this taint only. The operator Exists matches the taint with any value.
|
Hi @corioliskraft. Thanks for your PR. I'm waiting for a stackitcloud member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions 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. |
|
/ok-to-test |
dergeberl
left a comment
There was a problem hiding this comment.
Thanks for the fix! We also have an idea for the other issue with the image tag, we will write later in the issue.
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dergeberl The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
LGTM label has been added. DetailsGit tree hash: eb3eea2c8c71b75bdb1925657065688ccc53aa5e |
|
/cherry-pick release-v1.34 |
|
@dergeberl: once the present PR merges, I will cherry-pick it on top of DetailsIn response to this:
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. |
|
@dergeberl: new pull request created: #1528 DetailsIn response to this:
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. |
|
@dergeberl: new pull request created: #1529 DetailsIn response to this:
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. |
|
@dergeberl: new pull request created: #1530 DetailsIn response to this:
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. |
How to categorize this PR?
/kind bug
What this PR does / why we need it:
Kubelet puts the taint
node.cloudprovider.kubernetes.io/uninitialized:NoScheduleon each node when it runs with--cloud-provider=external.deploy/cloud-controller-manager/deployment.yamlhas notolerationsblock, so the scheduler cannot place the pod. On a new cluster all nodes have this taint, and the pod stays in the Pending condition. The report shows this message:This pull request adds a toleration for this one taint. The operator
Existsmatches the taint with any value. The pod stays sensitive to all other taints. This is different fromdeploy/csi-plugin/nodeplugin.yaml, which tolerates each taint, because a node plugin must operate on every node.Which issue(s) this PR fixes:
Part of #1162
The issue reports two defects. This pull request corrects the first one. The second defect is the image tag
release-v1.34, which is not in the registry. That defect needs a decision from the maintainers, and it is not part of this pull request.Special notes for your reviewer:
The deployment starts the CCM with
--controllers=service-lb-controller. This flag keepscloud-node-controlleroff, andcloud-node-controlleris the controller that removes this taint. So this change lets the CCM start on a tainted node, but it does not remove the taint from the node.kubectl kustomize deploy/cloud-controller-managerbuilds correctly, and the toleration is in the output.make verifygives 0 lint issues and all unit tests pass.Breaking changes:
None.