-
Notifications
You must be signed in to change notification settings - Fork 336
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
distributed provisioning: avoid errors from lib about foreign nodes #670
Conversation
The provisioner receives PVCs for all nodes. This is necessary to support provisioning of PVCs with immediate binding. When it receives a PVC with a selected node that isn't the local one, the fake node informer didn't have an object for that node, which caused this error and a corresponding event: E0902 17:33:24.229890 1 controller.go:981] error syncing claim "f5008265-3c43-4385-a78d-4fa3f72fb611": failed to get target node: node "aks-workerpool-15818640-vmss00000a" not found This could be avoided if the lib didn't look up the node for the provisioner. We discussed that a while back and decided against it at the time. Given that situation, the simplest solution is to ensure that the lib always gets a node object.
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: pohly 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 |
To me it looks quite fragile. sig-storage-lib-external-provisioner uses the nodeLister only after |
It already does that: external-provisioner/pkg/controller/controller.go Line 1256 in d686130
I think what happened here is that a claim was originally meant to be provisioned on the node (ShouldProvision returned true), but then got rescheduled. Why it then keeps trying to obtain the node and call Provision is a bit unclear - perhaps that is the real problem. Let me check that. /hold |
Good news, bad news... The bad news is that This wasn't obvious because even at log -v5 there was no output about that check. I wonder whether that should be added. But for now: |
@pohly: Closed this PR. In 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/test-infra repository. |
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
The provisioner receives PVCs for all nodes. This is necessary to support
provisioning of PVCs with immediate binding. When it receives a PVC with a
selected node that isn't the local one, the fake node informer didn't have an
object for that node, which caused this error and a corresponding event:
Which issue(s) this PR fixes:
Fixes #669
Special notes for your reviewer:
This could be avoided if the lib didn't look up the node for the
provisioner. We discussed that a while back and decided against it at the
time. Given that situation, the simplest solution is to ensure that the lib
always gets a node object.
Does this PR introduce a user-facing change?: