Merge pull request #74811 from gnufied/fix-attachable-csi-mock-driver

When checking for pod info version, make volume attachable
This commit is contained in:
Kubernetes Prow Robot 2019-03-05 06:51:39 -08:00 committed by GitHub
commit 257205d656
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -53,7 +53,7 @@ const (
var _ = utils.SIGDescribe("CSI mock volume", func() { var _ = utils.SIGDescribe("CSI mock volume", func() {
type testParameters struct { type testParameters struct {
attachable bool disableAttach bool
attachLimit int attachLimit int
registerDriver bool registerDriver bool
podInfoVersion *string podInfoVersion *string
@ -87,7 +87,7 @@ var _ = utils.SIGDescribe("CSI mock volume", func() {
cs := f.ClientSet cs := f.ClientSet
var err error var err error
m.driver = drivers.InitMockCSIDriver(tp.registerDriver, tp.attachable, tp.podInfoVersion, tp.attachLimit) m.driver = drivers.InitMockCSIDriver(tp.registerDriver, !tp.disableAttach, tp.podInfoVersion, tp.attachLimit)
config, testCleanup := m.driver.PrepareTest(f) config, testCleanup := m.driver.PrepareTest(f)
m.testCleanups = append(m.testCleanups, testCleanup) m.testCleanups = append(m.testCleanups, testCleanup)
m.config = config m.config = config
@ -188,31 +188,29 @@ var _ = utils.SIGDescribe("CSI mock volume", func() {
// The CSIDriverRegistry feature gate is needed for this test in Kubernetes 1.12. // The CSIDriverRegistry feature gate is needed for this test in Kubernetes 1.12.
Context("CSI attach test using mock driver [Feature:CSIDriverRegistry]", func() { Context("CSI attach test using mock driver [Feature:CSIDriverRegistry]", func() {
tests := []struct { tests := []struct {
name string name string
driverAttachable bool disableAttach bool
deployDriverCRD bool deployDriverCRD bool
}{ }{
{ {
name: "should not require VolumeAttach for drivers without attachment", name: "should not require VolumeAttach for drivers without attachment",
driverAttachable: false, disableAttach: true,
deployDriverCRD: true, deployDriverCRD: true,
}, },
{ {
name: "should require VolumeAttach for drivers with attachment", name: "should require VolumeAttach for drivers with attachment",
driverAttachable: true, deployDriverCRD: true,
deployDriverCRD: true,
}, },
{ {
name: "should preserve attachment policy when no CSIDriver present", name: "should preserve attachment policy when no CSIDriver present",
driverAttachable: true, deployDriverCRD: false,
deployDriverCRD: false,
}, },
} }
for _, t := range tests { for _, t := range tests {
test := t test := t
It(t.name, func() { It(t.name, func() {
var err error var err error
init(testParameters{registerDriver: test.deployDriverCRD, attachable: test.driverAttachable}) init(testParameters{registerDriver: test.deployDriverCRD, disableAttach: test.disableAttach})
defer cleanup() defer cleanup()
_, claim, pod := createPod() _, claim, pod := createPod()
@ -229,14 +227,14 @@ var _ = utils.SIGDescribe("CSI mock volume", func() {
_, err = m.cs.StorageV1beta1().VolumeAttachments().Get(attachmentName, metav1.GetOptions{}) _, err = m.cs.StorageV1beta1().VolumeAttachments().Get(attachmentName, metav1.GetOptions{})
if err != nil { if err != nil {
if errors.IsNotFound(err) { if errors.IsNotFound(err) {
if test.driverAttachable { if !test.disableAttach {
framework.ExpectNoError(err, "Expected VolumeAttachment but none was found") framework.ExpectNoError(err, "Expected VolumeAttachment but none was found")
} }
} else { } else {
framework.ExpectNoError(err, "Failed to find VolumeAttachment") framework.ExpectNoError(err, "Failed to find VolumeAttachment")
} }
} }
if !test.driverAttachable { if test.disableAttach {
Expect(err).To(HaveOccurred(), "Unexpected VolumeAttachment found") Expect(err).To(HaveOccurred(), "Unexpected VolumeAttachment found")
} }
}) })
@ -318,7 +316,7 @@ var _ = utils.SIGDescribe("CSI mock volume", func() {
// define volume limit to be 2 for this test // define volume limit to be 2 for this test
var err error var err error
init(testParameters{attachable: true, nodeSelectorKey: "node-attach-limit-csi", attachLimit: 2}) init(testParameters{nodeSelectorKey: "node-attach-limit-csi", attachLimit: 2})
defer cleanup() defer cleanup()
nodeName := m.config.ClientNodeName nodeName := m.config.ClientNodeName
attachKey := v1.ResourceName(volumeutil.GetCSIAttachLimitKey(m.provisioner)) attachKey := v1.ResourceName(volumeutil.GetCSIAttachLimitKey(m.provisioner))