-
Notifications
You must be signed in to change notification settings - Fork 40k
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
GCE PDs aren't labeled by zone and can't be deleted in ubernetes lite #24447
Comments
The PD does not appear to getting zone labels ( {"kubernetes.io/created-for/pv/name":"pv-gce-j5swc","kubernetes.io/created-for/pvc/name":"pvc-nkmbw","kubernetes.io/created-for/pvc/namespace":"e2e-tests-volume-provisioning-9iwlu"} CC @justinsb |
The controller-manager failed to uniquely find the disk:
It might be because there are a ton of leaked disks around in the project. I'll delete them, but @saad-ali is there an existing issue around PD leaks from this test? |
Ah, the leak is caused by the same underlying issue -- |
And there it is: gce.findDiskByName returns (nil, nil) if the disk is not found, but gce.getDiskByNameUnknownZone considers the disk to be found if the error returned by gce.FindDiskByName is nil. I'll send out a fix. |
I'm not sure how this test has been passing for the ubernetes-lite on GCE test suite so consistently, given that the same issue would appear at first glance to apply there as well. |
Ah, it's one hell of a coincidence that it's been passing for the ubernetes-lite suite, but it does make sense. It looks like GCE always returns the list of zones in a consistent order; this one, to be precise:
The disk gets successfully found in the ubernetes-lite suite because the In the GKE test suite, this isn't the case because we're using us-central1-f as the master's zone, so when we check us-central1-b and don't get an error back from gce.findDiskByName, we bail. |
Nice sleuthing Alex! What an embarassing bug. Thanks for fixing. I will review your fix in detail now to confirm. |
I've confirmed that the tests are passing now that the fix is in. |
The "DynamicProvisioner should create and delete persistent volumes" test is failing because the volume is being provisioned in a different zone than the node that the pod is being placed onto. Attempting to mount the disk on the pod's node fails with:
It's a known issue that dynamically provisioned PVs are created in the master's zone (#23330), but unexpected that the pod created with the claim is being placed in a different zone.
@quinton-hoole @saad-ali
The text was updated successfully, but these errors were encountered: