• Kubernetes Submit Queue's avatar
    Merge pull request #61019 from ianchakeres/e2e-lv-prov-bind-disc · af22cc80
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 61644, 61624, 61743, 61019, 61287). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.
    
    Added e2e test for local-volume provisioner that does not create PV for discovered non-bind-mounted filesystem.
    
    **What this PR does / why we need it**:
    
    For v2+ of the [local volume provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume) non-bind mounted filesystems in a discovery directory will no longer result in local PVs. This change was put in place to handle the non-atomic nature of other methods of adding directories (e.g. https://github.com/kubernetes-incubator/external-storage/issues/482).
    
    This PR tests this change in behavior, and it validates that non-bind mounted directories within a discovery directory do NOT result in a local PV.
    
    **Which issue(s) this PR fixes**:
    Fixes https://github.com/kubernetes/kubernetes/issues/61020
    
    **Special notes for your reviewer**:
    
    This test can be executed using the following commands:
    ```
    KUBE_FEATURE_GATES="BlockVolume=true" NUM_NODES=1 go run hack/e2e.go -- --up
    
    go run hack/e2e.go -- --test --test_args='--ginkgo.focus=PersistentVolumes-local.*Local.*volume.*provisioner'
    ```
    
    If you get the logs from a local volume provisioner pod, you will see the following log messages:
    ```
    $ kubectl logs local-volume-provisioner-94ddb -n e2e-tests-persistent-local-volumes-test-6ls4z
    <snip>
    I0311 19:01:30.350504       1 controller.go:73] Controller started
    E0311 19:01:30.350849       1 discovery.go:172] Path "/mnt/local-storage/notbindmount" is not an actual mountpoint
    ```
    
    
    **Release note**:
    ```release-note
    NONE
    ```
    af22cc80
Name
Last commit
Last update
..
apimachinery Loading commit data...
apps Loading commit data...
auth Loading commit data...
autoscaling Loading commit data...
chaosmonkey Loading commit data...
common Loading commit data...
framework Loading commit data...
generated Loading commit data...
instrumentation Loading commit data...
kubectl Loading commit data...
lifecycle Loading commit data...
manifest Loading commit data...
network Loading commit data...
node Loading commit data...
perftype Loading commit data...
scalability Loading commit data...
scheduling Loading commit data...
servicecatalog Loading commit data...
storage Loading commit data...
testing-manifests Loading commit data...
ui Loading commit data...
upgrades Loading commit data...
BUILD Loading commit data...
README.md Loading commit data...
e2e-example-config.json Loading commit data...
e2e.go Loading commit data...
e2e_test.go Loading commit data...
examples.go Loading commit data...
gke_local_ssd.go Loading commit data...
gke_node_pools.go Loading commit data...